Skip to content

Commit d411d54

Browse files
committed
Objectify the GPU
1 parent f8a558c commit d411d54

25 files changed

Lines changed: 2165 additions & 765 deletions

Examples/Hello.c

Lines changed: 28 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ typedef struct {
4646
/**
4747
* @brief The cube vertex buffer.
4848
*/
49-
SDL_GPUBuffer *vertexBuffer;
49+
Buffer *vertexBuffer;
5050

5151
/**
5252
* @brief The graphics pipeline.
5353
*/
54-
SDL_GPUGraphicsPipeline *pipeline;
54+
GraphicsPipeline *pipeline;
5555

5656
/**
5757
* @brief The cube angles.
@@ -123,12 +123,12 @@ static void initScene(AppState *app) {
123123

124124
scene->vertexBuffer = $(app->renderDevice, createBufferWithConstMem, SDL_GPU_BUFFERUSAGE_VERTEX, vertices, sizeof(vertices));
125125

126-
SDL_GPUShader *vertexShader = $(app->renderDevice, loadShader, "Hello.vert", &(SDL_GPUShaderCreateInfo) {
126+
Shader *vertexShader = $(app->renderDevice, loadShader, "Hello.vert", &(SDL_GPUShaderCreateInfo) {
127127
.stage = SDL_GPU_SHADERSTAGE_VERTEX,
128128
.num_uniform_buffers = 1,
129129
});
130130

131-
SDL_GPUShader *fragmentShader = $(app->renderDevice, loadShader, "Hello.frag", &(SDL_GPUShaderCreateInfo) {
131+
Shader *fragmentShader = $(app->renderDevice, loadShader, "Hello.frag", &(SDL_GPUShaderCreateInfo) {
132132
.stage = SDL_GPU_SHADERSTAGE_FRAGMENT,
133133
});
134134

@@ -153,41 +153,29 @@ static void initScene(AppState *app) {
153153
},
154154
};
155155

156-
const SDL_GPUColorTargetDescription ctd = {
157-
.format = app->framebuffer->colorFormat,
156+
SDL_GPUGraphicsPipelineCreateInfo pipelineInfo = GPU_GraphicsPipeline3D;
157+
pipelineInfo.vertex_shader = vertexShader->shader;
158+
pipelineInfo.fragment_shader = fragmentShader->shader;
159+
pipelineInfo.vertex_input_state = (SDL_GPUVertexInputState) {
160+
.vertex_buffer_descriptions = &vbd,
161+
.num_vertex_buffers = 1,
162+
.vertex_attributes = attrs,
163+
.num_vertex_attributes = (Uint32) SDL_arraysize(attrs),
158164
};
159-
160-
scene->pipeline = $(app->renderDevice, createGraphicsPipeline, &(SDL_GPUGraphicsPipelineCreateInfo) {
161-
.vertex_shader = vertexShader,
162-
.fragment_shader = fragmentShader,
163-
.vertex_input_state = {
164-
.vertex_buffer_descriptions = &vbd,
165-
.num_vertex_buffers = 1,
166-
.vertex_attributes = attrs,
167-
.num_vertex_attributes = (Uint32) SDL_arraysize(attrs),
168-
},
169-
.primitive_type = SDL_GPU_PRIMITIVETYPE_TRIANGLELIST,
170-
.rasterizer_state = {
171-
.fill_mode = SDL_GPU_FILLMODE_FILL,
172-
.cull_mode = SDL_GPU_CULLMODE_BACK,
173-
.front_face = SDL_GPU_FRONTFACE_COUNTER_CLOCKWISE,
174-
.enable_depth_clip = true,
175-
},
176-
.depth_stencil_state = {
177-
.compare_op = SDL_GPU_COMPAREOP_LESS_OR_EQUAL,
178-
.enable_depth_test = true,
179-
.enable_depth_write = true,
180-
},
181-
.target_info = {
182-
.color_target_descriptions = &ctd,
183-
.num_color_targets = 1,
184-
.depth_stencil_format = app->framebuffer->depthFormat,
185-
.has_depth_stencil_target = true,
165+
pipelineInfo.target_info = (SDL_GPUGraphicsPipelineTargetInfo) {
166+
.color_target_descriptions = &(SDL_GPUColorTargetDescription) {
167+
.format = app->framebuffer->colorTexture->format,
168+
.blend_state = GPU_BlendStateOpaque,
186169
},
187-
});
170+
.num_color_targets = 1,
171+
.depth_stencil_format = app->framebuffer->depthTexture->format,
172+
.has_depth_stencil_target = true,
173+
};
174+
175+
scene->pipeline = $(app->renderDevice, createGraphicsPipeline, &pipelineInfo);
188176

189-
$(app->renderDevice, releaseShader, vertexShader);
190-
$(app->renderDevice, releaseShader, fragmentShader);
177+
release(vertexShader);
178+
release(fragmentShader);
191179
}
192180

193181
/**
@@ -218,7 +206,7 @@ static void drawScene(AppState *app, CommandBuffer *cmd) {
218206

219207
RenderPass *pass = $(cmd, beginRenderPass, &color, 1, &depth);
220208
$(pass, bindPipeline, scene->pipeline);
221-
$(pass, bindVertexBuffers, 0, &(SDL_GPUBufferBinding) { .buffer = scene->vertexBuffer }, 1);
209+
$(pass, bindVertexBuffers, 0, &(SDL_GPUBufferBinding) { .buffer = scene->vertexBuffer->buffer }, 1);
222210
$(pass, drawPrimitives, (Uint32) SDL_arraysize(vertices), 1, 0, 0);
223211
release(pass);
224212
}
@@ -281,7 +269,7 @@ SDL_AppResult SDL_AppIterate(void *appState) {
281269

282270
$(cmd, blitTexture, &(SDL_GPUBlitInfo) {
283271
.source = {
284-
.texture = app->framebuffer->colorTexture,
272+
.texture = app->framebuffer->colorTexture->texture,
285273
.w = (Uint32) swapchain.size.w,
286274
.h = (Uint32) swapchain.size.h,
287275
},
@@ -322,8 +310,8 @@ void SDL_AppQuit(void *appState, SDL_AppResult result) {
322310
AppState *app = appState;
323311

324312
$(app->renderDevice, waitForIdle);
325-
$(app->renderDevice, releaseGraphicsPipeline, app->scene.pipeline);
326-
$(app->renderDevice, releaseBuffer, app->scene.vertexBuffer);
313+
release(app->scene.pipeline);
314+
release(app->scene.vertexBuffer);
327315

328316
release(app->framebuffer);
329317
release(app->renderDevice);

Examples/HelloCompute.c

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ int main(int argc, char **argv) {
4545
int status = EXIT_FAILURE;
4646
SDL_Window *window = NULL;
4747
RenderDevice *renderDevice = NULL;
48-
SDL_GPUBuffer *particleBuffer = NULL;
49-
SDL_GPUShader *vertexShader = NULL;
50-
SDL_GPUShader *fragmentShader = NULL;
51-
SDL_GPUGraphicsPipeline *graphicsPipeline = NULL;
52-
SDL_GPUComputePipeline *computePipeline = NULL;
48+
Buffer *particleBuffer = NULL;
49+
Shader *vertexShader = NULL;
50+
Shader *fragmentShader = NULL;
51+
GraphicsPipeline *graphicsPipeline = NULL;
52+
ComputePipeline *computePipeline = NULL;
5353

5454
if (!SDL_Init(SDL_INIT_VIDEO)) {
5555
log_sdl_error("SDL_Init");
@@ -100,8 +100,8 @@ int main(int argc, char **argv) {
100100
};
101101

102102
graphicsPipeline = $(renderDevice, createGraphicsPipeline, &(SDL_GPUGraphicsPipelineCreateInfo) {
103-
.vertex_shader = vertexShader,
104-
.fragment_shader = fragmentShader,
103+
.vertex_shader = vertexShader->shader,
104+
.fragment_shader = fragmentShader->shader,
105105
.primitive_type = SDL_GPU_PRIMITIVETYPE_POINTLIST,
106106
.rasterizer_state = {
107107
.fill_mode = SDL_GPU_FILLMODE_FILL,
@@ -116,9 +116,9 @@ int main(int argc, char **argv) {
116116
},
117117
});
118118

119-
$(renderDevice, releaseShader, vertexShader);
119+
release(vertexShader);
120120
vertexShader = NULL;
121-
$(renderDevice, releaseShader, fragmentShader);
121+
release(fragmentShader);
122122
fragmentShader = NULL;
123123

124124
bool running = true;
@@ -151,7 +151,7 @@ int main(int argc, char **argv) {
151151
$(commands, pushComputeUniformData, 0, &time, sizeof(time));
152152

153153
SDL_GPUStorageBufferReadWriteBinding storageBuffer = {
154-
.buffer = particleBuffer,
154+
.buffer = particleBuffer->buffer,
155155
.cycle = false,
156156
};
157157

@@ -168,7 +168,7 @@ int main(int argc, char **argv) {
168168
};
169169

170170
RenderPass *renderPass = $(commands, beginRenderPass, &colorTarget, 1, NULL);
171-
SDL_GPUBuffer *vertexStorageBuffers[] = { particleBuffer };
171+
SDL_GPUBuffer *vertexStorageBuffers[] = { particleBuffer->buffer };
172172
$(renderPass, bindPipeline, graphicsPipeline);
173173
$(renderPass, bindVertexStorageBuffers, 0, vertexStorageBuffers, 1);
174174
$(renderPass, drawPrimitives, NUM_PARTICLES, 1, 0, 0);
@@ -185,24 +185,13 @@ int main(int argc, char **argv) {
185185
$(renderDevice, waitForIdle);
186186
}
187187

188-
if (graphicsPipeline) {
189-
$(renderDevice, releaseGraphicsPipeline, graphicsPipeline);
190-
}
191-
if (computePipeline) {
192-
$(renderDevice, releaseComputePipeline, computePipeline);
193-
}
194-
if (vertexShader) {
195-
$(renderDevice, releaseShader, vertexShader);
196-
}
197-
if (fragmentShader) {
198-
$(renderDevice, releaseShader, fragmentShader);
199-
}
200-
if (particleBuffer) {
201-
$(renderDevice, releaseBuffer, particleBuffer);
202-
}
203-
if (renderDevice) {
204-
release(renderDevice);
205-
}
188+
release(graphicsPipeline);
189+
release(computePipeline);
190+
release(vertexShader);
191+
release(fragmentShader);
192+
release(particleBuffer);
193+
release(renderDevice);
194+
206195
if (window) {
207196
SDL_DestroyWindow(window);
208197
}

ObjectivelyGPU.xcodeproj/project.pbxproj

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,17 @@
4545
AA000000000000000000FF01 /* SDL3.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA000000000000000000EE01 /* SDL3.xcframework */; };
4646
CCCB11DB70E4A962360A2119 /* CopyPass.c in Sources */ = {isa = PBXBuildFile; fileRef = C862954A9DD435C1FF7CD31D /* CopyPass.c */; };
4747
CEA0030000000000000000F1 /* Objectively.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEA0030000000000000000F0 /* Objectively.framework */; };
48+
CEBA3F602FF30F1E00758CA6 /* Texture.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F5E2FF30F1E00758CA6 /* Texture.h */; settings = {ATTRIBUTES = (Public, ); }; };
49+
CEBA3F612FF30F1E00758CA6 /* Texture.c in Sources */ = {isa = PBXBuildFile; fileRef = CEBA3F5F2FF30F1E00758CA6 /* Texture.c */; };
50+
CEBA3F6B2FF3211F00758CA6 /* GraphicsPipeline.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F652FF3211F00758CA6 /* GraphicsPipeline.h */; settings = {ATTRIBUTES = (Public, ); }; };
51+
CEBA3F6C2FF3211F00758CA6 /* Sampler.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F672FF3211F00758CA6 /* Sampler.h */; settings = {ATTRIBUTES = (Public, ); }; };
52+
CEBA3F6D2FF3211F00758CA6 /* ComputePipeline.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F642FF3211F00758CA6 /* ComputePipeline.h */; settings = {ATTRIBUTES = (Public, ); }; };
53+
CEBA3F6E2FF3211F00758CA6 /* Shader.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F692FF3211F00758CA6 /* Shader.h */; settings = {ATTRIBUTES = (Public, ); }; };
54+
CEBA3F6F2FF3211F00758CA6 /* Buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = CEBA3F622FF3211F00758CA6 /* Buffer.h */; settings = {ATTRIBUTES = (Public, ); }; };
55+
CEBA3F702FF3211F00758CA6 /* GraphicsPipeline.c in Sources */ = {isa = PBXBuildFile; fileRef = CEBA3F662FF3211F00758CA6 /* GraphicsPipeline.c */; };
56+
CEBA3F712FF3211F00758CA6 /* Buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = CEBA3F632FF3211F00758CA6 /* Buffer.c */; };
57+
CEBA3F722FF3211F00758CA6 /* Shader.c in Sources */ = {isa = PBXBuildFile; fileRef = CEBA3F6A2FF3211F00758CA6 /* Shader.c */; };
58+
CEBA3F732FF3211F00758CA6 /* Sampler.c in Sources */ = {isa = PBXBuildFile; fileRef = CEBA3F682FF3211F00758CA6 /* Sampler.c */; };
4859
CECF83982FEF6A7200CB0CCA /* Mathlib.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF83972FEF6A7200CB0CCA /* Mathlib.h */; settings = {ATTRIBUTES = (Public, ); }; };
4960
CECF83B52FEF765400CB0CCA /* Hello.frag.glsl in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECF83A42FEF712F00CB0CCA /* Hello.frag.glsl */; };
5061
CECF83B62FEF765400CB0CCA /* Hello.frag.msl in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECF83A52FEF712F00CB0CCA /* Hello.frag.msl */; };
@@ -62,7 +73,7 @@
6273
CECF83C22FEF765400CB0CCA /* HelloCompute.vert.glsl in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECF83B02FEF712F00CB0CCA /* HelloCompute.vert.glsl */; };
6374
CECF83C32FEF765400CB0CCA /* HelloCompute.vert.msl in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECF83B12FEF712F00CB0CCA /* HelloCompute.vert.msl */; };
6475
CECF83C42FEF765400CB0CCA /* HelloCompute.vert.spv in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECF83B22FEF712F00CB0CCA /* HelloCompute.vert.spv */; };
65-
CECF83C72FF03A3500CB0CCA /* Framebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF83C52FF03A3500CB0CCA /* Framebuffer.h */; };
76+
CECF83C72FF03A3500CB0CCA /* Framebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF83C52FF03A3500CB0CCA /* Framebuffer.h */; settings = {ATTRIBUTES = (Public, ); }; };
6677
CECF83C82FF03A3500CB0CCA /* Framebuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = CECF83C62FF03A3500CB0CCA /* Framebuffer.c */; };
6778
DF73824CC25298378B451056 /* CopyPass.h in Headers */ = {isa = PBXBuildFile; fileRef = 59334BDAED542AB6DE565EDD /* CopyPass.h */; settings = {ATTRIBUTES = (Public, ); }; };
6879
EE00100000000000000000B1 /* Hello.c in Sources */ = {isa = PBXBuildFile; fileRef = EE00010000000000000000B1 /* Hello.c */; };
@@ -175,6 +186,17 @@
175186
C16D60B0E94469E649953EC5 /* ObjectivelyGPU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ObjectivelyGPU.h; sourceTree = "<group>"; };
176187
C862954A9DD435C1FF7CD31D /* CopyPass.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyPass.c; sourceTree = "<group>"; };
177188
CEA0030000000000000000F0 /* Objectively.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Objectively.framework; sourceTree = BUILT_PRODUCTS_DIR; };
189+
CEBA3F5E2FF30F1E00758CA6 /* Texture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Texture.h; sourceTree = "<group>"; };
190+
CEBA3F5F2FF30F1E00758CA6 /* Texture.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Texture.c; sourceTree = "<group>"; };
191+
CEBA3F622FF3211F00758CA6 /* Buffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Buffer.h; sourceTree = "<group>"; };
192+
CEBA3F632FF3211F00758CA6 /* Buffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Buffer.c; sourceTree = "<group>"; };
193+
CEBA3F642FF3211F00758CA6 /* ComputePipeline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComputePipeline.h; sourceTree = "<group>"; };
194+
CEBA3F652FF3211F00758CA6 /* GraphicsPipeline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GraphicsPipeline.h; sourceTree = "<group>"; };
195+
CEBA3F662FF3211F00758CA6 /* GraphicsPipeline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GraphicsPipeline.c; sourceTree = "<group>"; };
196+
CEBA3F672FF3211F00758CA6 /* Sampler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Sampler.h; sourceTree = "<group>"; };
197+
CEBA3F682FF3211F00758CA6 /* Sampler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Sampler.c; sourceTree = "<group>"; };
198+
CEBA3F692FF3211F00758CA6 /* Shader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Shader.h; sourceTree = "<group>"; };
199+
CEBA3F6A2FF3211F00758CA6 /* Shader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Shader.c; sourceTree = "<group>"; };
178200
CECF83942FEF65EB00CB0CCA /* Makefile.am */ = {isa = PBXFileReference; lastKnownFileType = text; path = Makefile.am; sourceTree = "<group>"; };
179201
CECF83952FEF65FF00CB0CCA /* Makefile.am */ = {isa = PBXFileReference; lastKnownFileType = text; path = Makefile.am; sourceTree = "<group>"; };
180202
CECF83962FEF65FF00CB0CCA /* ObjectivelyGPU.pc.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = ObjectivelyGPU.pc.in; sourceTree = "<group>"; };
@@ -290,20 +312,31 @@
290312
AFF3775B279FC0FE4D348FBA /* ObjectivelyGPU */ = {
291313
isa = PBXGroup;
292314
children = (
293-
338EC7DCAE74C1B8C397D189 /* Config.h */,
294-
6C38B23048C269B804E75F03 /* CommandBuffer.c */,
315+
CEBA3F622FF3211F00758CA6 /* Buffer.h */,
316+
CEBA3F632FF3211F00758CA6 /* Buffer.c */,
295317
E71C479F7B60345FDDA44201 /* CommandBuffer.h */,
296-
ED8024CA4186E352C1EC4CA1 /* ComputePass.c */,
318+
6C38B23048C269B804E75F03 /* CommandBuffer.c */,
297319
09B8DD26CDB7926D89445C91 /* ComputePass.h */,
298-
C862954A9DD435C1FF7CD31D /* CopyPass.c */,
320+
ED8024CA4186E352C1EC4CA1 /* ComputePass.c */,
321+
CEBA3F642FF3211F00758CA6 /* ComputePipeline.h */,
322+
338EC7DCAE74C1B8C397D189 /* Config.h */,
299323
59334BDAED542AB6DE565EDD /* CopyPass.h */,
300-
CECF83C62FF03A3500CB0CCA /* Framebuffer.c */,
324+
C862954A9DD435C1FF7CD31D /* CopyPass.c */,
301325
CECF83C52FF03A3500CB0CCA /* Framebuffer.h */,
326+
CECF83C62FF03A3500CB0CCA /* Framebuffer.c */,
327+
CEBA3F652FF3211F00758CA6 /* GraphicsPipeline.h */,
328+
CEBA3F662FF3211F00758CA6 /* GraphicsPipeline.c */,
302329
CECF83972FEF6A7200CB0CCA /* Mathlib.h */,
303-
77315F9BC357C97B885E883C /* RenderDevice.c */,
304330
9220C57BBAA3C951D8083799 /* RenderDevice.h */,
305-
669BE73362E651792735CB1C /* RenderPass.c */,
331+
77315F9BC357C97B885E883C /* RenderDevice.c */,
306332
206D63692B601BD90F377BF5 /* RenderPass.h */,
333+
669BE73362E651792735CB1C /* RenderPass.c */,
334+
CEBA3F672FF3211F00758CA6 /* Sampler.h */,
335+
CEBA3F682FF3211F00758CA6 /* Sampler.c */,
336+
CEBA3F692FF3211F00758CA6 /* Shader.h */,
337+
CEBA3F6A2FF3211F00758CA6 /* Shader.c */,
338+
CEBA3F5E2FF30F1E00758CA6 /* Texture.h */,
339+
CEBA3F5F2FF30F1E00758CA6 /* Texture.c */,
307340
38F069D0DBE26C7E00B5B5EE /* Types.h */,
308341
CECF83942FEF65EB00CB0CCA /* Makefile.am */,
309342
);
@@ -375,15 +408,21 @@
375408
isa = PBXHeadersBuildPhase;
376409
buildActionMask = 2147483647;
377410
files = (
411+
CEBA3F6F2FF3211F00758CA6 /* Buffer.h in Headers */,
378412
6F351DFD232DA78A42D8B494 /* Config.h in Headers */,
379-
2A17F0E01E5CC25A431FFBAD /* CommandBuffer.h in Headers */,
380-
CECF83C72FF03A3500CB0CCA /* Framebuffer.h in Headers */,
413+
CEBA3F6D2FF3211F00758CA6 /* ComputePipeline.h in Headers */,
381414
034285033FECAB2D6BD6AE5B /* ComputePass.h in Headers */,
382415
DF73824CC25298378B451056 /* CopyPass.h in Headers */,
383-
CECF83982FEF6A7200CB0CCA /* Mathlib.h in Headers */,
416+
2A17F0E01E5CC25A431FFBAD /* CommandBuffer.h in Headers */,
417+
CECF83C72FF03A3500CB0CCA /* Framebuffer.h in Headers */,
418+
CEBA3F6B2FF3211F00758CA6 /* GraphicsPipeline.h in Headers */,
384419
A09AD953AC672E0DE9D1E26D /* ObjectivelyGPU.h in Headers */,
420+
CECF83982FEF6A7200CB0CCA /* Mathlib.h in Headers */,
385421
59897FC7BCC194032E971A9B /* RenderDevice.h in Headers */,
386422
683F683E23149C267D613EA0 /* RenderPass.h in Headers */,
423+
CEBA3F6C2FF3211F00758CA6 /* Sampler.h in Headers */,
424+
CEBA3F6E2FF3211F00758CA6 /* Shader.h in Headers */,
425+
CEBA3F602FF30F1E00758CA6 /* Texture.h in Headers */,
387426
90C29A39257729BE8D4FDDF8 /* Types.h in Headers */,
388427
);
389428
runOnlyForDeploymentPostprocessing = 0;
@@ -577,12 +616,17 @@
577616
isa = PBXSourcesBuildPhase;
578617
buildActionMask = 2147483647;
579618
files = (
619+
CEBA3F712FF3211F00758CA6 /* Buffer.c in Sources */,
580620
36FBB92ACB08F2078D50C84D /* CommandBuffer.c in Sources */,
581621
F73340493879CD8034F99D51 /* ComputePass.c in Sources */,
582622
CCCB11DB70E4A962360A2119 /* CopyPass.c in Sources */,
583623
CECF83C82FF03A3500CB0CCA /* Framebuffer.c in Sources */,
624+
CEBA3F702FF3211F00758CA6 /* GraphicsPipeline.c in Sources */,
625+
CEBA3F732FF3211F00758CA6 /* Sampler.c in Sources */,
626+
CEBA3F722FF3211F00758CA6 /* Shader.c in Sources */,
584627
86E5132F5DCCB6B674151343 /* RenderDevice.c in Sources */,
585628
FF30FF2D56F9E4EA3C492CBB /* RenderPass.c in Sources */,
629+
CEBA3F612FF30F1E00758CA6 /* Texture.c in Sources */,
586630
);
587631
runOnlyForDeploymentPostprocessing = 0;
588632
};

Sources/ObjectivelyGPU.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,16 @@
2323

2424
#pragma once
2525

26+
#include <ObjectivelyGPU/Buffer.h>
2627
#include <ObjectivelyGPU/CommandBuffer.h>
2728
#include <ObjectivelyGPU/ComputePass.h>
29+
#include <ObjectivelyGPU/ComputePipeline.h>
2830
#include <ObjectivelyGPU/CopyPass.h>
2931
#include <ObjectivelyGPU/Framebuffer.h>
32+
#include <ObjectivelyGPU/GraphicsPipeline.h>
3033
#include <ObjectivelyGPU/Mathlib.h>
3134
#include <ObjectivelyGPU/RenderDevice.h>
3235
#include <ObjectivelyGPU/RenderPass.h>
36+
#include <ObjectivelyGPU/Sampler.h>
37+
#include <ObjectivelyGPU/Shader.h>
38+
#include <ObjectivelyGPU/Texture.h>

0 commit comments

Comments
 (0)