Take a look at the Render Target functionality, it’s designed so you can
render textures on other textures.
I wrote this little program. The idea is to create a backbuffer
texture (tx), make it blueish, and paste it on the screen. But all I
get is a blank screen.
I looked everywhere but couldn’t find one single example code on
copying texture on texture. Does this funcionality even exist?
Here’s my code:
#include “SDL2/SDL.h”
int main()
{
SDL_Window* win;
SDL_Renderer *ren, *bb;
// initialize SDL
SDL_Init(SDL_INIT_VIDEO);
SDL_CreateWindowAndRenderer(800, 600, 0, &win, &ren);
// create backbuffer and renderer
bb = SDL_CreateRenderer(win, -1, SDL_RENDERER_TARGETTEXTURE);
SDL_Texture* tx = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_STREAMING, 800, 600);
SDL_SetRenderTarget(bb, tx);
SDL_SetRenderDrawColor(bb, 100, 255, 255, 255);
SDL_RenderClear(bb);
SDL_RenderPresent(bb);
// paste backbuffer on the screen
SDL_RenderClear(ren);
SDL_RenderCopy(ren, tx, NULL, NULL);
SDL_RenderPresent(ren);
SDL_Delay(2000);
}
Regards,
Andr?–
Ars longa, vita brevis, occasio praeceps, experientia fallax, iudicium
difficile.
You have to SDL_SetRenderTarget(bb, NULL) to render to screen.
2013/9/3 Andr? Wagner <andre.nho at gmail.com>> > Take a look at the Render Target functionality, it’s designed so you can
render textures on other textures.
I wrote this little program. The idea is to create a backbuffer
texture (tx), make it blueish, and paste it on the screen. But all I
get is a blank screen.
I looked everywhere but couldn’t find one single example code on
copying texture on texture. Does this funcionality even exist?
Here’s my code:
#include “SDL2/SDL.h”
int main()
{
SDL_Window* win;
SDL_Renderer *ren, *bb;
// initialize SDL
SDL_Init(SDL_INIT_VIDEO);
SDL_CreateWindowAndRenderer(800, 600, 0, &win, &ren);
// create backbuffer and renderer
bb = SDL_CreateRenderer(win, -1, SDL_RENDERER_TARGETTEXTURE);
SDL_Texture* tx = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_STREAMING, 800, 600);
SDL_SetRenderTarget(bb, tx);
SDL_SetRenderDrawColor(bb, 100, 255, 255, 255);
SDL_RenderClear(bb);
SDL_RenderPresent(bb);
// paste backbuffer on the screen
SDL_RenderClear(ren);
SDL_RenderCopy(ren, tx, NULL, NULL);
SDL_RenderPresent(ren);
SDL_Delay(2000);
}
Regards,
Andr?
–
Ars longa, vita brevis, occasio praeceps, experientia fallax, iudicium
difficile.
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Gabriel.
Take a look at this test, it should serve as a guide:
http://hg.libsdl.org/SDL/file/54c06b0f65d9/test/testrendercopyex.c
2013/9/3 Andr? Wagner <andre.nho at gmail.com>> > Take a look at the Render Target functionality, it’s designed so you can
render textures on other textures.
I wrote this little program. The idea is to create a backbuffer
texture (tx), make it blueish, and paste it on the screen. But all I
get is a blank screen.
I looked everywhere but couldn’t find one single example code on
copying texture on texture. Does this funcionality even exist?
Here’s my code:
#include “SDL2/SDL.h”
int main()
{
SDL_Window* win;
SDL_Renderer *ren, *bb;
// initialize SDL
SDL_Init(SDL_INIT_VIDEO);
SDL_CreateWindowAndRenderer(800, 600, 0, &win, &ren);
// create backbuffer and renderer
bb = SDL_CreateRenderer(win, -1, SDL_RENDERER_TARGETTEXTURE);
SDL_Texture* tx = SDL_CreateTexture(ren, SDL_PIXELFORMAT_ARGB8888,
SDL_TEXTUREACCESS_STREAMING, 800, 600);
SDL_SetRenderTarget(bb, tx);
SDL_SetRenderDrawColor(bb, 100, 255, 255, 255);
SDL_RenderClear(bb);
SDL_RenderPresent(bb);
// paste backbuffer on the screen
SDL_RenderClear(ren);
SDL_RenderCopy(ren, tx, NULL, NULL);
SDL_RenderPresent(ren);
SDL_Delay(2000);
}
Regards,
Andr?
–
Ars longa, vita brevis, occasio praeceps, experientia fallax, iudicium
difficile.
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Gabriel.