Re: Weird behaviour on the Raspberry Pi

Jonathan Dearborn <[email protected]>
Newsgroups gmane.comp.lib.sdl
Message-ID <CA+DSiHZWAMAnk9XgduAuzZH1WCYPVA=LCgROe2sQpDMBNWxJgw@mail.gmail.com>
Can you simplify this example with fewer textures and RTT calls and still
get this behavior?

Jonny D


On Wed, Sep 28, 2016 at 12:40 PM, Andreas Falkenhahn <[email protected]
> wrote:

> On 28.09.2016 at 17:59 rtrussell wrote:
>
> >  One thing I would question is that there's no SDL_RenderClear().
> > The docs say "You are strongly encouraged to call SDL_RenderClear()
> > to initialize the backbuffer before starting each new frame's
> > drawing".  Does it make any difference if you change it as follows:
>
> No, doesn't make any difference. The screen still alternates between
> red and black. Here is the updated code for reference:
>
> #include <SDL.h>
>
> int main(int argc, char *argv[])
> {
>         SDL_Window *window;
>         SDL_Renderer *renderer;
>         SDL_Texture *texture1, *texture2, *texture3;
>         SDL_Event se;
>         int quit = 0, k;
>         int w = 295, reverse = 0;
>         char *pixbuf = malloc(640 * 480 * 4);
>         unsigned int *ptr;
>
>         SDL_Init(SDL_INIT_VIDEO);
>         SDL_VideoInit("RPI");
>
>         window = SDL_CreateWindow("Foo", 0, 0, 640, 480, 0);
>         renderer = SDL_CreateRenderer(window, -1, 0);
>         texture1 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888,
> SDL_TEXTUREACCESS_STREAMING, 640, 480);
>         texture2 = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888,
> SDL_TEXTUREACCESS_STREAMING, 640, 480);
>
>         memset(pixbuf, 0, 640 * 480 * 4);
>         SDL_UpdateTexture(texture1, NULL, pixbuf, 640 * 4);
>         SDL_RenderCopy(renderer, texture1, NULL, NULL);
>         SDL_RenderPresent(renderer);
>
>         ptr = (unsigned int *) pixbuf;
>         for(k = 0; k < 640 * 480; k++) *ptr++ = 0xffff0000;
>         SDL_UpdateTexture(texture2, NULL, pixbuf, 640 * 4);
>
>         SDL_ShowWindow(window);
>         SDL_RaiseWindow(window);
>
>         while(!quit) {
>
>                 texture3 = SDL_CreateTexture(renderer,
> SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, w, w);
>
>                 SDL_SetRenderTarget(renderer, texture3);
>                 SDL_SetTextureBlendMode(texture2, SDL_BLENDMODE_NONE);
>                 SDL_RenderCopy(renderer, texture2, NULL, NULL);
>                 SDL_SetTextureBlendMode(texture3, SDL_BLENDMODE_BLEND);
>
>                 SDL_SetRenderTarget(renderer, NULL);
>                 SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
>                 SDL_RenderClear(renderer);
>                 SDL_RenderCopy(renderer, texture1, NULL, NULL);
>                 SDL_RenderCopy(renderer, texture3, NULL, NULL);
>                 SDL_RenderPresent(renderer);
>
>                 while(SDL_PollEvent(&se)) {
>                         if(se.type == SDL_MOUSEBUTTONDOWN) quit = 1;
>                 }
>
>                 SDL_DestroyTexture(texture3);
>
>                 if(reverse) {
>                         w -= 10;
>                 } else {
>                         w += 10;
>                 }
>
>                 if(w >= 640) {
>                         w = 640;
>                         reverse = 1;
>                 } else if(w <= 2) {
>                         w = 2;
>                         reverse = 0;
>                 }
>         }
>
>         SDL_DestroyTexture(texture1);
>         SDL_DestroyTexture(texture2);
>
>         SDL_DestroyRenderer(renderer);
>         SDL_DestroyWindow(window);
>
>         SDL_Quit();
>
>         free(pixbuf);
>
>         return 0;
> }
>
> --
> Best regards,
>  Andreas Falkenhahn                            mailto:
> [email protected]
>
> _______________________________________________
> SDL mailing list
> [email protected]
> http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
>

_______________________________________________
SDL mailing list
[email protected]
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.