group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
Boilerplate.cpp File Reference

Implementation of SDL3 GPU boilerplate helpers. More...

#include "Boilerplate.hpp"
#include <filesystem>
#include <stb_image.h>
Include dependency graph for Boilerplate.cpp:

Namespaces

namespace  Boilerplate

Functions

ImGui_ImplSDLGPU3_InitInfo Boilerplate::createImGuiInfo (SDL_GPUDevice *device, SDL_Window *window)
 Create an ImGui initialization info struct for SDL3 GPU rendering.
SDL_GPUVertexAttribute Boilerplate::makeAttribute (Uint32 location, SDL_GPUVertexElementFormat format, Uint32 offset, Uint32 bufferSlot=0)
 Build an SDL_GPUVertexAttribute descriptor.
SDL_GPUColorTargetInfo Boilerplate::makeColorTarget (SDL_GPUTexture *texture, SDL_FColor clearColor)
 Create a color render-target info with a clear color.
SDL_GPUDepthStencilTargetInfo Boilerplate::makeDepthTarget (SDL_GPUTexture *texture)
 Create a depth/stencil render-target info that clears to depth 1.0.
SDL_GPUTextureSamplerBinding Boilerplate::makeTextureSamplerBinding (SDL_GPUTexture *texture, SDL_GPUSampler *sampler)
 Create a texture-sampler binding pair for fragment shader use.
SDL_GPUShaderFormat Boilerplate::selectShaderFormat (SDL_GPUDevice *device)
 Pick the best available shader format for the given device.
SDL_GPUShader * Boilerplate::loadShader (SDL_GPUDevice *device, const char *path, SDL_GPUShaderFormat format, SDL_GPUShaderStage stage, Uint32 samplerCount, Uint32 uniformBufferCount, Uint32 storageBufferCount, Uint32 storageTextureCount)
 Load and compile a shader from disk (explicit parameters).
SDL_GPUShader * Boilerplate::loadShader (SDL_GPUDevice *device, const ShaderInfo &shaderInfo, SDL_GPUShaderFormat format)
 Load and compile a shader from a ShaderInfo descriptor.
SDL_GPUGraphicsPipeline * Boilerplate::createGraphicsPipeline (SDL_GPUDevice *device, SDL_Window *window, SDL_GPUShaderFormat shaderFormat, const ShaderInfo &vertexShaderInfo, const ShaderInfo &fragmentShaderInfo, const VertexInputLayout &vertexInputLayout, bool enableDepth=true)
 Create a full graphics pipeline from vertex/fragment shaders and vertex layout.
SDL_GPUBuffer * Boilerplate::createBuffer (SDL_GPUDevice *device, size_t bufferSize, SDL_GPUBufferUsageFlags usage)
 Allocate a GPU buffer of the given size and usage.
SDL_GPUTransferBuffer * Boilerplate::createTransferBuffer (SDL_GPUDevice *device, size_t transferBufferSize, bool upload)
 Allocate a GPU transfer buffer for upload or download.
SDL_GPUTransferBuffer * Boilerplate::createUploadBuffer (SDL_GPUDevice *device, size_t transferBufferSize)
 Allocate a GPU transfer buffer for uploading data.
void Boilerplate::uploadBuffers (SDL_GPUDevice *device, SDL_GPUCommandBuffer *cmd, const std::vector< BufferUpload > &uploads)
 Batch-upload multiple CPU buffers to their corresponding GPU buffers.
SDL_GPUTexture * Boilerplate::createTextureRGBA8 (SDL_GPUDevice *device, Uint32 width, Uint32 height, const void *data)
 Create a 2D RGBA8 texture and upload pixel data to it.
SDL_GPUTexture * Boilerplate::loadTexture (SDL_GPUDevice *device, const char *path)
 Load an image file from disk and create a GPU texture from it.
SDL_GPUTexture * Boilerplate::createDepthTexture (SDL_GPUDevice *device, Uint32 width, Uint32 height)
 Create a D32_FLOAT depth texture of the given dimensions.
SDL_GPUSampler * Boilerplate::createLinearRepeatSampler (SDL_GPUDevice *device)
 Create a linear-filtering, repeat-addressing sampler.

Detailed Description

Implementation of SDL3 GPU boilerplate helpers.