@@ -98,25 +98,19 @@ static CommandBuffer *acquireCommandBuffer(const RenderDevice *self) {
9898static CommandBuffer * beginFrame (RenderDevice * self ) {
9999
100100 GPU_Assert (self -> framebuffer , "no framebuffer set; call setFramebuffer first" );
101- GPU_Assert (! self -> commandBuffer , "beginFrame called with a frame already in flight" );
101+ GPU_Assert (self -> commandBuffer == NULL , "beginFrame called with a frame already in flight" );
102102
103- CommandBuffer * commands = $ (self , acquireCommandBuffer );
103+ self -> commandBuffer = $ (self , acquireCommandBuffer );
104104
105- SwapchainTexture swapchain = { 0 };
106- $ (commands , waitAndAcquireSwapchainTexture , & swapchain );
107-
108- if (!swapchain .texture ) {
109- $ (commands , cancel );
110- release (commands );
111- return NULL ;
105+ const bool ok = $ (self -> commandBuffer , waitAndAcquireSwapchainTexture , & self -> swapchain );
106+ if (ok ) {
107+ $ (self -> framebuffer , resize , & self -> swapchain .size );
108+ } else {
109+ $ (self -> commandBuffer , cancel );
110+ self -> commandBuffer = release (self -> commandBuffer );
112111 }
113112
114- $ (self -> framebuffer , resize , & swapchain .size );
115-
116- self -> commandBuffer = commands ;
117- self -> swapchain = swapchain ;
118-
119- return commands ;
113+ return self -> commandBuffer ;
120114}
121115
122116/**
@@ -147,8 +141,8 @@ static void endFrame(RenderDevice *self) {
147141
148142 $ (self -> commandBuffer , submit );
149143
150- release (self -> commandBuffer );
151- self -> commandBuffer = NULL ;
144+ self -> commandBuffer = release (self -> commandBuffer );
145+
152146 self -> swapchain = (SwapchainTexture ) { 0 };
153147}
154148
@@ -366,8 +360,11 @@ static bool setAllowedFramesInFlight(const RenderDevice *self, Uint32 allowed) {
366360static void setFramebuffer (RenderDevice * self , Framebuffer * framebuffer ) {
367361
368362 if (self -> framebuffer != framebuffer ) {
369- release (self -> framebuffer );
370- self -> framebuffer = framebuffer ? retain (framebuffer ) : NULL ;
363+ self -> framebuffer = release (self -> framebuffer );
364+
365+ if (framebuffer ) {
366+ self -> framebuffer = retain (framebuffer );
367+ }
371368 }
372369}
373370
0 commit comments