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

SDL3 GPU helper utilities: shader loading, buffer/texture creation, pipeline setup. More...

#include <SDL3/SDL.h>
#include <SDL3/SDL_gpu.h>
#include <backends/imgui_impl_sdlgpu3.h>
#include <cstddef>
#include <vector>
Include dependency graph for Boilerplate.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Boilerplate::ShaderInfo
 Descriptor for a single shader stage: file path, stage, and resource counts. More...
struct  Boilerplate::VertexInputLayout
 Vertex buffer layout: stride (pitch) and per-attribute descriptions. More...
struct  Boilerplate::BufferUpload
 Describes a pending CPU-to-GPU buffer upload: target buffer, source data, and byte size. More...

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::makeColorTargetClear (SDL_GPUTexture *texture, SDL_FColor clearColor)
 Create a color render-target info with a clear color.
SDL_GPUColorTargetInfo Boilerplate::makeColorTargetLoad (SDL_GPUTexture *texture)
 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_GPUTextureFormat &colorFormat, SDL_GPUShaderFormat shaderFormat, const ShaderInfo &vertexShaderInfo, const ShaderInfo &fragmentShaderInfo, const VertexInputLayout &vertexInputLayout, bool enableDepth=true, bool overBlending=false)
 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

SDL3 GPU helper utilities: shader loading, buffer/texture creation, pipeline setup.