@@ -53,39 +53,6 @@ static const VertexData vertex_data[] = {
5353 { -0.5f , -0.5f , -0.5f , 0 , 1 , 0 }, { 0.5f , -0.5f , -0.5f , 0 , 0 , 1 }, { 0.5f , -0.5f , 0.5f , 1 , 0 , 1 },
5454};
5555
56- static void upload_vertex_buffer (const RenderDevice * renderDevice , SDL_GPUBuffer * buffer ) {
57-
58- SDL_GPUTransferBuffer * transferBuffer = $ (renderDevice , createTransferBuffer , & (SDL_GPUTransferBufferCreateInfo ) {
59- .usage = SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD ,
60- .size = sizeof (vertex_data ),
61- });
62-
63- void * mapped = $ (renderDevice , mapTransferBuffer , transferBuffer , false);
64- SDL_memcpy (mapped , vertex_data , sizeof (vertex_data ));
65- $ (renderDevice , unmapTransferBuffer , transferBuffer );
66-
67- CommandBuffer * cmd = $ (renderDevice , acquireCommandBuffer );
68- CopyPass * copyPass = $ (cmd , beginCopyPass );
69-
70- $ (copyPass , uploadBuffer ,
71- & (SDL_GPUTransferBufferLocation ) {
72- .transfer_buffer = transferBuffer ,
73- .offset = 0 ,
74- },
75- & (SDL_GPUBufferRegion ) {
76- .buffer = buffer ,
77- .offset = 0 ,
78- .size = sizeof (vertex_data ),
79- },
80- false);
81-
82- release (copyPass );
83- $ (cmd , submit );
84- release (cmd );
85-
86- $ (renderDevice , releaseTransferBuffer , transferBuffer );
87- }
88-
8956/**
9057 * @brief
9158 */
@@ -100,29 +67,20 @@ int main(int argc, char **argv) {
10067
10168 $$ (Resource , addResourcePath , EXAMPLES );
10269
103- RenderDevice * renderDevice = $ (alloc (RenderDevice ), initWithWindow , window );
70+ RenderDevice * renderDevice = $ (alloc (RenderDevice ), initWithWindow , window );
10471 assert (renderDevice );
10572
106- SDL_GPUBuffer * vertexBuffer = $ (renderDevice , createBuffer , & (SDL_GPUBufferCreateInfo ) {
107- .usage = SDL_GPU_BUFFERUSAGE_VERTEX ,
108- .size = sizeof (vertex_data ),
109- });
110- upload_vertex_buffer (renderDevice , vertexBuffer );
73+ SDL_GPUBuffer * vertexBuffer = $ (renderDevice , createBufferWithConstMem ,
74+ SDL_GPU_BUFFERUSAGE_VERTEX , vertex_data , sizeof (vertex_data ));
11175
112- int w = 0 ;
113- int h = 0 ;
76+ int w = 0 ;
77+ int h = 0 ;
11478 SDL_GetWindowSizeInPixels (window , & w , & h );
11579
116- SDL_GPUTexture * depthTexture = $ (renderDevice , createTexture , & (SDL_GPUTextureCreateInfo ) {
117- .type = SDL_GPU_TEXTURETYPE_2D ,
118- .format = SDL_GPU_TEXTUREFORMAT_D16_UNORM ,
119- .usage = SDL_GPU_TEXTUREUSAGE_DEPTH_STENCIL_TARGET ,
120- .width = (Uint32 ) w ,
121- .height = (Uint32 ) h ,
122- .layer_count_or_depth = 1 ,
123- .num_levels = 1 ,
124- .sample_count = SDL_GPU_SAMPLECOUNT_1 ,
125- }, NULL );
80+ Framebuffer * framebuffer = $ (alloc (Framebuffer ), initWithDevice , renderDevice ,
81+ & MakeSize (w , h ),
82+ SDL_GPU_TEXTUREFORMAT_INVALID ,
83+ SDL_GPU_TEXTUREFORMAT_D16_UNORM );
12684
12785 SDL_GPUShader * vertexShader = $ (renderDevice , loadShader , "Hello.vert" , & (SDL_GPUShaderCreateInfo ) {
12886 .entrypoint = "vs_main" ,
@@ -194,9 +152,7 @@ int main(int argc, char **argv) {
194152 });
195153
196154 $ (renderDevice , releaseShader , vertexShader );
197- vertexShader = NULL ;
198155 $ (renderDevice , releaseShader , fragmentShader );
199- fragmentShader = NULL ;
200156
201157 bool running = true;
202158 float angleX = 0.0f ;
@@ -256,14 +212,9 @@ int main(int argc, char **argv) {
256212 .load_op = SDL_GPU_LOADOP_CLEAR ,
257213 .store_op = SDL_GPU_STOREOP_STORE ,
258214 };
259- SDL_GPUDepthStencilTargetInfo depthTarget = {
260- .texture = depthTexture ,
261- .clear_depth = 1.0f ,
262- .load_op = SDL_GPU_LOADOP_CLEAR ,
263- .store_op = SDL_GPU_STOREOP_DONT_CARE ,
264- .stencil_load_op = SDL_GPU_LOADOP_DONT_CARE ,
265- .stencil_store_op = SDL_GPU_STOREOP_DONT_CARE ,
266- };
215+
216+ SDL_GPUDepthStencilTargetInfo depthTarget = $ (framebuffer , depthTargetInfo ,
217+ SDL_GPU_LOADOP_CLEAR , SDL_GPU_STOREOP_DONT_CARE , 1.f );
267218
268219 RenderPass * renderPass = $ (cmd , beginRenderPass , & colorTarget , 1 , & depthTarget );
269220 $ (renderPass , bindPipeline , pipeline );
@@ -298,8 +249,8 @@ int main(int argc, char **argv) {
298249 if (vertexBuffer ) {
299250 $ (renderDevice , releaseBuffer , vertexBuffer );
300251 }
301- if (depthTexture ) {
302- $ ( renderDevice , releaseTexture , depthTexture );
252+ if (framebuffer ) {
253+ release ( framebuffer );
303254 }
304255 if (renderDevice ) {
305256 release (renderDevice );
0 commit comments