Framebuffer done.
This commit is contained in:
@@ -11,27 +11,16 @@
|
||||
#include "display/camera/camera.h"
|
||||
|
||||
#if RENDER_USE_FRAMEBUFFER
|
||||
SDL_Texture *RENDER_BACKBUFFER;
|
||||
#else
|
||||
|
||||
framebuffer_t RENDER_BACKBUFFER;
|
||||
#endif
|
||||
|
||||
errorret_t renderBackBufferInit(void) {
|
||||
#if RENDER_USE_FRAMEBUFFER
|
||||
// RENDER_BACKBUFFER = SDL_CreateTexture(
|
||||
// RENDER_RENDERER,
|
||||
// SDL_PIXELFORMAT_RGBA8888,
|
||||
// SDL_TEXTUREACCESS_TARGET,
|
||||
// RENDER_WIDTH,
|
||||
// RENDER_HEIGHT
|
||||
// );
|
||||
|
||||
if(!RENDER_BACKBUFFER) {
|
||||
errorThrow("SDL_CreateTexture failed: %s", SDL_GetError());
|
||||
}
|
||||
|
||||
// Make sure we unbind the back buffer after creation
|
||||
// SDL_SetRenderTarget(RENDER_RENDERER, NULL);
|
||||
frameBufferInit(
|
||||
&RENDER_BACKBUFFER,
|
||||
RENDER_WIDTH,
|
||||
RENDER_HEIGHT
|
||||
);
|
||||
#else
|
||||
// No back buffer needed for window rendering
|
||||
#endif
|
||||
@@ -41,7 +30,7 @@ errorret_t renderBackBufferInit(void) {
|
||||
|
||||
void renderBackBufferBind(void) {
|
||||
#if RENDER_USE_FRAMEBUFFER
|
||||
// SDL_SetRenderTarget(RENDER_RENDERER, RENDER_BACKBUFFER);
|
||||
frameBufferBind(&RENDER_BACKBUFFER);
|
||||
#endif
|
||||
|
||||
// Fill background with cornflower blue.
|
||||
@@ -51,7 +40,7 @@ void renderBackBufferBind(void) {
|
||||
|
||||
void renderBackBufferUnbind(void) {
|
||||
#if RENDER_USE_FRAMEBUFFER
|
||||
// SDL_SetRenderTarget(RENDER_RENDERER, NULL);
|
||||
frameBufferBind(NULL);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -82,11 +71,11 @@ void renderBackBufferDraw(void) {
|
||||
// Draw the back buffer texture
|
||||
spriteBatchClear();
|
||||
spriteBatchPush(
|
||||
NULL,
|
||||
&RENDER_BACKBUFFER.texture,
|
||||
renderX, renderY,
|
||||
renderX+renderWidth, renderY+renderHeight,
|
||||
0xFF, 0x00, 0xFF, 0xFF,
|
||||
0, 0, 1, 1
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0, 1, 1, 0
|
||||
);
|
||||
spriteBatchFlush();
|
||||
cameraScreenPop();
|
||||
@@ -97,8 +86,7 @@ void renderBackBufferDraw(void) {
|
||||
|
||||
errorret_t renderBackBufferDispose(void) {
|
||||
#if RENDER_USE_FRAMEBUFFER
|
||||
SDL_DestroyTexture(RENDER_BACKBUFFER);
|
||||
RENDER_BACKBUFFER = NULL;
|
||||
frameBufferDispose(&RENDER_BACKBUFFER);
|
||||
#endif
|
||||
|
||||
errorOk();
|
||||
|
Reference in New Issue
Block a user