载入中...
搜索中...
未找到
Graphics.h
浏览该文件的文档.
143 virtual void drawSolidRectRGBA(float x, float y, float w, float h, float r, float g, float b, float a = 1.f);
145 virtual void drawTexturedRectRGBA(Texture *texture, float x, float y, float w, float h, float r, float g, float b,
148 virtual void drawTexturedRectRotatedRGBA(Texture* texture, float cx, float cy, float w, float h, float degrees,
151 virtual void drawSolidRect(float x, float y, float w, float h, float r, float g, float b, float a = 1.f);
153 virtual void drawTexturedRect(Texture *texture, float x, float y, float w, float h, float r, float g, float b,
178 [[nodiscard]] eve::Result<void> updateTextureFromImageData(Texture* texture, image::ImageData* data);
184 Texture* newTextureWithSampler(image::ImageData* data, bool repeatU, bool repeatV, bool generateMipmaps,
196 virtual void setTextureSampler(Texture *texture, const std::string &filter, const std::string &mipmap,
230 [[nodiscard]] Result<eve::Subscription> onResourcesRetiring(std::function<void()> callback) const;
337 virtual bool updateGpuParticleEmitter(GpuParticleHandle handle, const GpuParticleUpdate& update,
378 virtual GpuResidentSubmitStatus gpuDrivenSubmitResident(const GpuResidentInstanceBatch &batch) {
401 virtual void gpuDrivenCullEmit(const glm::mat4& viewProj, const glm::vec3& eye, float fovYDeg, float nearZ,
467 virtual void gpuDrivenVgComputeSection(const glm::mat4& viewProj, const glm::vec3& eye, float fovYDeg, float nearZ,
511 double getCurrentDPIScale() const { return (width > 0) ? double(pixelWidth) / double(width) : 1.0; }
521 [[nodiscard]] std::shared_ptr<PrimitiveScene> getPrimitiveScene() const noexcept { return primitiveScene_; }
528 virtual void drawSolidRectRotated(float cx, float cy, float w, float h, float degrees, const Color& color,
542 virtual Texture* newTexture(int width, int height, const uint8_t* rgba, const TextureCreateInfo& info) = 0;
590 virtual bool copyHDRCanvasesToCubemap(Canvas* const* sources, int faceCount, Texture* cubemap) {
670 [[nodiscard]] virtual eve::Result<void> updateTextureRegion(Texture* texture, int x, int y, int width, int height,
741 virtual void drawTexturedRect(Texture* texture, float x, float y, float w, float h, const Color& color) = 0;
744 virtual void drawTexturedRectShader(Texture* texture, Shader* shader, float x, float y, float w, float h,
748 virtual void drawTexturedRectUV(Texture* texture, float x, float y, float w, float h, float u0, float v0, float u1,
752 virtual void drawTexturedRectShaderUV(Texture* texture, Shader* shader, float x, float y, float w, float h,
760 virtual void drawTexturedRectShaderUVRotated(Texture* texture, Shader* shader, float cx, float cy, float w, float h,
769 virtual void drawTexturedRectShaderDepth(Texture* color, Texture* depth, Shader* shader, float x, float y, float w,
773 virtual void drawTexturedRectShaderDepthMotion(Texture* color, Texture* depth, Texture* motion, Shader* shader,
777 virtual void drawTexturedRectShader4(Texture* color, Texture* depth, Texture* motion, Texture* extra,
781 virtual void drawTexturedRectShader5(Texture* color, Texture* depth, Texture* motion, Texture* extra,
796 virtual SceneColorDistortionStatus drawSceneColorDistortionUVRotated(Texture* displacement, float cx, float cy,
808 virtual void drawTexturedRectLitUV(Texture *albedo, Texture *normal, float x, float y, float w, float h, float u0,
817 virtual void drawTexturedRectLitUVRotated(Texture *albedo, Texture *normal, float cx, float cy, float w, float h,
850 virtual Mesh *newMeshFromArraysColored(const float *posXYZ, const float *nrmXYZ, const float *uvST,
941 virtual void setDirectionalLight(float dx, float dy, float dz, float r = 1.f, float g = 1.f, float b = 1.f);
949 virtual void drawScene3DRGBA(float x, float y, float w, float h, float r = 1.f, float g = 1.f, float b = 1.f,
952 void drawScene3D(float x, float y, float w, float h) { drawScene3DRGBA(x, y, w, h, 1.f, 1.f, 1.f, 1.f); }
955 virtual void drawCanvasRGBA(Canvas *canvas, float x, float y, float w, float h, float r = 1.f, float g = 1.f,
989 virtual void drawMeshGBuffer(Mesh* mesh, const glm::mat4& mvp, const glm::mat4& model, float nearZ, float farZ,
999 virtual void drawMeshGBufferAlpha(Mesh* mesh, const glm::mat4& mvp, const glm::mat4& model, float nearZ, float farZ,
1061 glm::vec4 idColor{0.f, 0.f, 0.f, 1.f};
1097 virtual void drawMesh(Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint) = 0;
1100 virtual void drawMeshShader(Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint,
1116 [[nodiscard]] virtual Result<void> drawMeshShaderInstances(Mesh &mesh, Shader &shader, const glm::mat4 &model,
1146 virtual void setMesh3DVirtualTexture(bool enabled, int pageCountX, int pageCountY, int atlasSlotsX, int atlasSlotsY,
1168 enum class Mesh3DSceneColorCaptureStatus { ExplicitOverride, Scheduled, Captured, HistoryReuse, Unavailable };
1200 virtual void setMesh3DSurface(SurfaceMode mode, BlendMode blend, bool depthWrite, bool doubleSided,
1215 virtual void setMesh3DParallax(float scale, float minLayers = 8.f, float maxLayers = 32.f) = 0;
1228 virtual void setCloudShadows(float strength, float worldCell, float time, float windSpeed, float windAngle,
1264 virtual void drawVoxelFaceInstances(const uint32_t* packed, int count, float originX, float originY, float originZ,
1366 [[nodiscard]] virtual Result<void> setDisplayHdrCalibration(float paperWhiteNits, float peakNits);
1397 virtual void setSceneLiftGammaGain(const glm::vec3& lift, const glm::vec3& inverseGamma, const glm::vec3& gain) = 0;
1405 virtual void setSceneTransitionFx(float vignette, float vignetteSmoothness, float lensDistortion,
1471 virtual void drawMeshShadow(Mesh *mesh, const glm::mat4 &lightMVP, bool doubleSided = true) = 0;
1479 virtual void drawMeshShadowAlpha(Mesh* mesh, const glm::mat4& lightMVP, Texture* albedo = nullptr,
1641 virtual void print(const std::string& text, float x, float y, const Color& color = Color(1.f, 1.f, 1.f, 1.f),
1714 virtual Shader *newShaderFromSpvFile(const std::string &vertPath, const std::string &fragPath) = 0;
1754 [[nodiscard]] virtual Result<void> replaceShaderFromSpv(Shader& shader, const std::vector<uint32_t>& vertSpv,
1776 [[nodiscard]] virtual Result<void> replaceMeshShaderResources(Shader &shader, const std::vector<uint32_t> &vertSpv,
1790 [[nodiscard]] virtual Result<void> replaceShaderFromWgsl(Shader& shader, const std::string& vertWgsl,
1830 [[nodiscard]] virtual eve::Result<void> configureMeshShaderSurface(Shader &, BlendMode, bool, bool) {
1833 eve::Diagnostic::error(eve::DiagnosticCode::Unsupported, "Custom mesh surface state is unavailable"));
1852 eve::Diagnostic::error(eve::DiagnosticCode::Unsupported, "Custom mesh raster state is unavailable"));
1878 virtual Shader* newHairShaderFromWgsl(const std::string& vertWgsl, const std::string& fragWgsl) = 0;
1966 [[nodiscard]] Result<void> configureFoliageWind(Material *material, float directionX, float directionZ,
2137 void rectangle(std::string mode, float x, float y, float w, float h, float rx, float ry, int points);
2177 void arc(std::string mode, std::string arcmode, float x, float y, float radius, float angle1, float angle2,
2180 void arc(std::string mode, std::string arcmode, float x, float y, float radius, float angle1, float angle2);
2188 void polygon(std::string mode, const std::vector<glm::vec2> &vertices, bool skipLastFilledVertex = true);
Move-only, checked operation results for the common layer.
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
Cross-module owner for swapchain presentation cadence.
Definition FramePresentation.h:6
Render-surface host for the window module (provided by graphics).
Definition WindowSurfaceHost.h:27
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
CPU-side decoded font face (FreeType FT_Face + owned font bytes). Does not upload to GPU — rasterize ...
Definition FontData.h:25
Reusable two-texture alpha mask for immediate 2D composition.
Definition AlphaMask.h:12
Linear-HDR bloom pyramid with selectable Karis/tent or Gaussian/scatter reconstruction.
Definition Bloom.h:42
Separable Gaussian depth-of-field for the final HDR scene.
Definition DepthOfField.h:18
Cross-backend min/max hardware-depth pyramid packed into one texture atlas.
Definition DepthPyramid.h:13
GPU percentile metering, eye adaptation, and linear HDR pre-exposure.
Definition Exposure.h:13
GPU-side font: wraps a decoded font::FontData and rasterizes a fixed set of codepoints into a single ...
Definition Font.h:35
Screen-space single-bounce GI (SSGI). @lifetime All texture arguments are borrowed for the duration o...
Definition GlobalIllumination.h:30
Definition Graphics.h:125
virtual void setFont(Font *font)
Optional shared font used by legacy consumers; nullptr = none set.
Definition Graphics.h:1627
virtual Texture * newCubemap(int faceSize, const uint8_t *rgbaFaces)=0
Create an RGBA8 cubemap from 6 faces packed as +X,-X,+Y,-Y,+Z,-Z (each faceSize×faceSize,...
virtual void beginShadowPass(int cascadeIndex)=0
Depth-only shadow pass for one cascade layer (0..2). Draws are recorded into the next begin3DFrame co...
std::vector< std::pair< WindowDestroyedCallback, void * > > windowDestroyedCallbacks_
Definition Graphics.h:2261
virtual void setMesh3DEnvProbe(const glm::vec3 ¢er, const glm::vec3 &extent)=0
Box projection bounds for the active environment; zero extent disables it.
virtual void onNativeWindowDestroyed()
Called by the Window module when the native window backing the render surface is destroyed (window cl...
Definition Graphics.h:1576
virtual glm::vec3 getSceneGain() const =0
Current pre-tonemap gain coefficients.
void(*)(void *userdata) WindowDestroyedCallback
Register a callback invoked when the native window is destroyed. Used by the UI backend to tear down ...
Definition Graphics.h:1594
virtual void setMesh3DReflectionProbes(const ReflectionProbeUpload &upload)=0
Upload the two dominant local reflection probes for subsequent mesh draws.
void drawCanvas(Canvas *canvas, float x, float y, float w, float h)
Draws a Canvas with opaque white tint (script-friendly defaults).
Definition Graphics.h:958
virtual bool updateTexture(Texture *texture, int width, int height, const uint8_t *rgba)=0
Replace an existing texture's pixels in place (pointer stays stable).
virtual bool releaseMesh(Mesh *mesh)
Eagerly releases a mesh created by this Graphics.
Definition Graphics.h:927
void ellipse(std::string mode, float x, float y, float a, float b)
Ellipse.
virtual void setMesh3DSceneColor(Texture *color)=0
Optional completed scene-color snapshot for custom mesh shaders.
virtual bool gpuDrivenSubmitOpaque(const GpuInstance *instances, uint32_t instanceCount)
Upload + record GPU-driven opaque draws (call inside the open 3D frame). The backend sorts instances ...
Definition Graphics.h:365
virtual bool copyHDRCanvasesToCubemap(Canvas *const *sources, int faceCount, Texture *cubemap)
Copy consecutive RGBA16F canvases into cubemap base-level faces.
Definition Graphics.h:590
virtual std::string getBackendName() const =0
Renderer backend id used by sibling modules (e.g. Gpgpu).
virtual Texture * getSceneLinearDepthTexture()
Sampleable scene linear depth in [0,1], or nullptr when unavailable.
Definition Graphics.h:1049
virtual void setVSync(bool enabled)
Prefer uncapped present (IMMEDIATE/MAILBOX) when false, vsync (MAILBOX/FIFO) when true....
Definition Graphics.h:1528
virtual image::ImageData * readGBufferToImageData(const std::string &attachment)
Read a G-buffer attachment back to CPU as RGBA8. name is one of "depth" (RGBA8 linear depth),...
Definition Graphics.h:1081
std::unique_ptr< AntiAliasing > pipelineAA_
Definition Graphics.h:2269
virtual float getSceneAutoExposureMinEV() const =0
Minimum automatic exposure EV.
virtual void drawTexturedRectShader4(Texture *color, Texture *depth, Texture *motion, Texture *extra, Shader *shader, float x, float y, float w, float h, const Color &tint)=0
Post draw with four sampled textures at bindings 0, 1, 2 and 3.
virtual GpuParticleHandle createGpuParticleEmitter(std::uint32_t capacity)
Allocate backend-owned resident state for one particle emitter.
Definition Graphics.h:324
virtual Shader * newMeshShaderFromSpv(const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv)=0
Create a Mesh3D custom shader (MeshVertex + Frame UBO + albedo). Empty vert → default mesh3d....
virtual bool gpuDrivenCullEnabled() const
True when the stage-2 GPU cull chain will run this frame.
Definition Graphics.h:388
virtual void setMesh3DShadows(const ShadowUpload &upload)=0
Upload CSM constants for subsequent default mesh draws (active=false disables).
void ellipse(std::string mode, float x, float y, float a, float b, int points)
Draws an ellipse using the specified arguments.
virtual void setMesh3DClip(float nearZ, float farZ)=0
Near/far used to pack linear depth into scene color A (SSGI).
virtual void gpuDrivenOpenScenePass()
Open the scene color pass that begin3DFrame deferred (cull path).
Definition Graphics.h:411
void setActive(bool active) override
Pause/resume presenting (Android background / foreground).
Definition Graphics.h:1546
virtual Mesh * newMeshCylinder(int slices=32, int stacks=1, bool caps=true)=0
Procedural Y-up cylinder (radius 1, height 2 centered at origin). slices = longitude divisions; stack...
virtual Result< void > replaceShaderFromGlsl(Shader &shader, const std::string &vertGlsl, const std::string &fragGlsl)=0
Compile GLSL and transactionally replace an existing shader.
std::unique_ptr< Outline > pipelineOutline_
Definition Graphics.h:2289
virtual float getSceneAutoExposureMaxEV() const =0
Maximum automatic exposure EV.
virtual void setMesh3DMaterial(float metallic, float roughness)=0
Metallic (0..1) and roughness (0..1) for the next default mesh draw.
virtual bool gpuDrivenVgSetInstance(std::uint32_t vgAssetId, const glm::mat4 &model, std::uint32_t materialId)
Register one instance of a VG asset this frame (model + material). The first instance per asset wins;...
Definition Graphics.h:458
void polyline(const glm::mat4 *vertices, size_t count)
Draws a series of lines connecting the given vertices.
virtual Shader * newHairShaderFromWgsl(const std::string &vertWgsl, const std::string &fragWgsl)=0
Create an alpha-blended hair/card shader from WGSL on WebGPU.
virtual float getSceneTransitionVignetteSmoothness() const =0
Return the final-composite vignette smoothness.
virtual bool drawGpuParticleEmitter(GpuParticleHandle handle, const GpuParticleDraw &draw)
Queue an indirect draw at the current 2D overlay position.
Definition Graphics.h:347
virtual GpuParticleStats getGpuParticleStats(GpuParticleHandle handle) const
Return the latest fence-complete counters without waiting on the GPU.
Definition Graphics.h:354
std::unique_ptr< DepthPyramid > pipelineDepthPyramid_
Definition Graphics.h:2279
virtual bool supportsGpuParticles() const
True when this backend supports resident compute + indirect particle draws.
Definition Graphics.h:318
std::unique_ptr< Bloom > pipelineBloom_
Definition Graphics.h:2270
virtual float getSceneBloomIntensity() const =0
Current final-scene bloom intensity.
std::vector< DeferredFileTexture > deferredFileTextures_
Definition Graphics.h:2239
virtual std::uint32_t gpuDrivenVgAssetId(Mesh *mesh) const
VG asset id attached to a mesh (kInvalidGpuDrivenSlot when none).
Definition Graphics.h:440
virtual bool releaseTexture(Texture *texture)
Eagerly releases a texture created by this Graphics.
Definition Graphics.h:733
virtual Shader * newShaderFromWgsl(const std::string &vertWgsl, const std::string &fragWgsl)=0
Create a 2D custom shader from WGSL source (WebGPU backend). Empty vert → default textured vertex sha...
virtual float getSceneTransitionLensDistortion() const =0
Return the final-composite radial lens-distortion strength.
virtual void drawTexturedRectShaderUV(Texture *texture, Shader *shader, float x, float y, float w, float h, float u0, float v0, float u1, float v1, const Color &color, bool rotatedUV=false, BlendMode blend=BlendMode::Alpha)=0
UV draw with an explicit Shader (nullptr = default textured pipeline).
virtual Shader * newMeshShader(const std::string &vertGlsl, const std::string &fragGlsl)=0
Creates a mesh shader. @ownership Caller deletes unless documented otherwise.
virtual void setMesh3DViewProj(const glm::mat4 &viewProj)=0
Sets the mesh 3 d view proj.
Module_REG(Graphics)
virtual void drawMeshShadow(Mesh *mesh, const glm::mat4 &lightMVP, bool doubleSided=true)=0
Queue an opaque shadow caster.
virtual void drawMesh(Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint)=0
Draw one mesh with model matrix. Requires begin3DFrame() (or an open swapchain pass).
virtual void drawMeshShadowAlpha(Mesh *mesh, const glm::mat4 &lightMVP, Texture *albedo=nullptr, bool doubleSided=true, float lodWeight=1.f, bool lodFadeReverse=false, bool lodDither=false)=0
Shadow pass draw with alpha-cutout discard (card/billboard geometry such as sprite-stack slices): tra...
virtual Texture * newTexture(image::ImageData *data)=0
Create texture from ImageData (RGBA8 required for now).
std::shared_ptr< PrimitiveScene > primitiveScene_
Definition Graphics.h:2265
virtual void resetGpuParticleEmitter(GpuParticleHandle handle)
Clear resident state before the next submitted frame.
Definition Graphics.h:333
virtual Result< void > setMesh3DPbrSurface(const PbrSurface *surface)
Copy a validated extended surface for subsequent draws; null resets to legacy shading.
Definition Graphics.h:1192
virtual void drawTexturedRectLitUVRotated(Texture *albedo, Texture *normal, float cx, float cy, float w, float h, float degrees, float u0, float v0, float u1, float v1, const Color &color, BlendMode blend=BlendMode::Alpha)=0
Lit 2D draw rotated degrees clockwise (screen Y-down) around (cx, cy). Fragment tangent frame is rebu...
virtual void setMesh3DCameraPos(const glm::vec3 &eye)=0
Camera eye used by mesh shaders that need view/rim (stored in Mesh3DUBO).
virtual glm::vec3 getSceneLift() const =0
Current pre-tonemap lift coefficients.
std::unique_ptr< ScreenSpaceReflection > pipelineSSR_
Definition Graphics.h:2268
virtual uint32_t gpuDrivenMeshRecord(Mesh *mesh)
GPU mesh-table slot for a mesh (kInvalidGpuDrivenSlot when not uploaded).
Definition Graphics.h:274
virtual glm::vec3 getSceneColorFilter() const =0
Current linear RGB multiplier applied during final HDR exposure.
void addWindowDestroyedCallback(WindowDestroyedCallback cb, void *userdata)
Adds window destroyed callback.
Definition Graphics.h:1596
virtual void setMsaaSamples(int samples)
Hardware MSAA sample count for the 3D scene color pass (0 disables, then 2/4/8 are used when the devi...
Definition Graphics.h:1541
virtual bool getSceneAutoExposure() const =0
Whether automatic exposure is active.
virtual void setLighting2D(const Lighting2DUBO &ubo)=0
Upload per-frame / per-canvas 2D lighting constants for subsequent lit draws.
void arc(std::string mode, std::string arcmode, float x, float y, float radius, float angle1, float angle2, int points)
Draws an arc using the specified arguments.
virtual void setMesh3DPackedNormalMask(bool enabled)=0
Interpret normal texture RG as tangent XY, B as AO and A as smoothness for terrain surfaces.
virtual image::ImageData * readDecalLayerToImageData(const std::string &attachment)
Read back a DecalLayer attachment ("albedo" | "normal" | "params") to CPU. Renders the pending G-buff...
Definition Graphics.h:1091
virtual float getSceneTransitionVignette() const =0
Return the final-composite vignette strength.
virtual void setMesh3DSSAO(float intensity)=0
Sets the screen-space ambient-occlusion strength applied in the forward mesh pass....
std::unique_ptr< DepthOfField > pipelineDof_
Definition Graphics.h:2271
virtual Mesh * newMeshFromAssimp(const ::aiMesh &mesh)=0
Creates a mesh from assimp. @ownership Caller deletes unless documented otherwise.
virtual void setMesh3DClusteredActive(bool active)=0
Cheap per-draw toggle for the already-uploaded clustered light table. Unlike setMesh3DClusteredLighti...
virtual Mesh * newMeshFromAssimp(const ::aiMesh &mesh, const aiMatrix4x4 &worldTransform)=0
Like newMeshFromAssimp, but bakes an Assimp node world transform into positions and transforms normal...
virtual bool canSubmitGpuParticles() const
True when the current frame topology can accept a GPU particle compute section.
Definition Graphics.h:321
glm::vec2 inverseTransformPoint(glm::vec2 point)
Inverse transform point.
virtual bool copyHDRCanvasToCubemapFace(Canvas *source, Texture *cubemap, int face)
Copy one RGBA16F Canvas into a staging cubemap base-level face.
Definition Graphics.h:572
virtual void begin3DFrameToCanvas(Canvas *canvas)=0
Open a 3D render pass targeting an offscreen Canvas (color + depth) at the canvas size....
virtual eve::Result< void > updateTextureFromResidentRgba8(Texture *texture, const GpuResidentBufferView &source, int width, int height)
Copy a same-device resident RGBA8 buffer into an existing texture.
Definition Graphics.h:643
virtual SceneColorDistortionStatus drawSceneColorDistortionUVRotated(Texture *displacement, float cx, float cy, float w, float h, float degrees, float u0, float v0, float u1, float v1, float strengthPixels, float opacity, bool rotatedUV=false)
Draws scene color distortion uv rotated.
Definition Graphics.h:796
virtual void setMesh3DEnv(Texture *cube, float intensity)=0
Specular IBL environment for subsequent default mesh draws. cube must be from newCubemap (or nullptr ...
virtual bool gpuDrivenMaterialUsable(Material *material)
Whether a material can be shaded by the GPU-driven opaque path. Backends/drivers with descriptor-inde...
Definition Graphics.h:304
virtual void setMesh3DLodDither(float weight, bool reverse, bool enabled)=0
Set opaque LOD dither coverage for the next default mesh draw. Render-thread only.
SceneColorDistortionStatus
Refract the resolved 3D scene color through a displacement texture.
Definition Graphics.h:793
virtual void setMesh3DTexCellBomb(float cellScale, float strength, float rotAmount=1.f)=0
Texture cell bombing for the next default mesh draw (breaks tiling). cellScale: cells per UV unit (ty...
virtual void beginDecalPass(int width, int height)=0
Open the decal pass (reads G-buffer hwDepth + normal, writes the screen-space DecalLayer targets)....
virtual void initWithWindow(void *nativeWindow)=0
Bind to an existing native window (SDL_Window*) and create Vulkan device/swapchain....
virtual float getScenePhotographicVignette() const
Return photographic vignette intensity; render thread only.
Definition Graphics.h:1387
virtual float getSceneBloomThreshold() const =0
Current linear HDR bloom threshold.
virtual void setSceneExposure(float exposure)=0
Set linear exposure multiplier used by the final scene tone-map resolve.
virtual GpuResidentSubmitStatus gpuDrivenSubmitResident(const GpuResidentInstanceBatch &batch)
Submit a GPU-authored, bucket-sorted GpuInstance buffer without CPU readback.
Definition Graphics.h:378
void rectangle(std::string mode, float x, float y, float w, float h, float rx, float ry, int points)
Variant of rectangle that draws a rounded rectangle.
virtual void popValidationScope()=0
Pops validation scope.
void arc(std::string mode, std::string arcmode, float x, float y, float radius, float angle1, float angle2)
Arc.
void rectangle(std::string mode, float x, float y, float w, float h, float rx, float ry)
Rectangle.
virtual void pushValidationScope()=0
Backend hooks so the platform-independent render3D() can wrap its work in a GPU validation error scop...
virtual void beginGBufferPass(int width, int height)=0
Depth/normal(/albedo) fill pass for mid/post effects. One-shot submit (like shadow); call before begi...
virtual void setMesh3DClusteredLighting(const ClusteredLightingUpload &upload)=0
Enable clustered forward path for subsequent default mesh draws (SSBO light lists)....
virtual void setMesh3DParallax(float scale, float minLayers=8.f, float maxLayers=32.f)=0
Parallax occlusion mapping for the next default mesh draw. scale: UV displacement strength (0=off)....
void rectangle(std::string mode, float x, float y, float w, float h)
Draws a rectangle.
virtual void setSceneBloom(float intensity, float threshold)=0
Configure final HDR bloom intensity and linear threshold.
void clearPresentOverlay()
Drop the present overlay callback (window gone; re-register on UI init).
Definition Graphics.h:1584
virtual Shader * newShader(const std::string &vertGlsl, const std::string &fragGlsl)=0
Compile GLSL source with the engine's build-time GLSL compiler. Empty vertGlsl → default textured ver...
virtual bool filterHDRReflectionCubemap(Texture *cubemap, int sampleCount=64)
Generate GGX specular mips and final diffuse irradiance for an HDR cubemap. @compatibility Preserves ...
Definition Graphics.h:601
virtual void drawTexturedRectShaderUVRotated(Texture *texture, Shader *shader, float cx, float cy, float w, float h, float degrees, float u0, float v0, float u1, float v1, const Color &color, bool rotatedUV=false, BlendMode blend=BlendMode::Alpha)=0
UV draw rotated degrees clockwise (screen Y-down) around the rect center. texture may be null → solid...
virtual Texture * newTexture(int width, int height, const uint8_t *rgba, bool repeatU=false, bool repeatV=false)=0
Creates a texture. @ownership Caller deletes unless documented otherwise.
virtual void drawDecal(const glm::mat4 &model, Texture *albedo, Texture *normal, Texture *params, const float uvRect[4], float fade, float normalStrength, float roughnessStrength, float metalStrength, float emissiveStrength, int blendMode=0, int projectionMode=0, float blendSharpness=4.f, float parallaxScale=0.f, float parallaxMinLayers=8.f, float parallaxMaxLayers=24.f, float edgeFadeWidth=0.06f)=0
Queue one box-projected decal draw. model maps the unit decal box ([-0.5, 0.5]^3, +Z = decal forward)...
virtual bool reloadTextureFromFile(const std::string &filename)=0
Reload a path-cached texture from disk in place (pointer stable). False if unbound.
virtual void setMesh3DVirtualTexture(bool enabled, int pageCountX, int pageCountY, int atlasSlotsX, int atlasSlotsY, float borderFraction)=0
Configure page-table sampling for the next mesh draw.
virtual std::optional< MeshBackendDescriptor > describeMesh(Mesh *mesh) const
Describe a live mesh created by this Graphics backend.
Definition Graphics.h:859
std::shared_ptr< PrimitiveScene > getPrimitiveScene() const noexcept
Returns the authoritative persistent spatial-primitive scene.
Definition Graphics.h:521
Shader * newMeshShaderVF(const std::string &vertGlsl, const std::string &fragGlsl)
Creates a Mesh3D shader from separate vertex and fragment GLSL sources.
Definition Graphics.h:1860
virtual bool updateMeshVertices(Mesh *mesh, const float *posXYZ, const float *nrmXYZ, const float *uvST, int vertexCount, const uint32_t *indices, int indexCount)=0
In-place update of a mesh's vertex/index data (CPU -> host-visible VBO). Mirrors bakeMeshMorph: the u...
virtual void setMesh3DView(const glm::mat4 &view)=0
Camera view matrix for subsequent drawMesh (view-space depth / CSM select).
virtual float getLastOffscreen3DGpuDurationMs() const
Return the GPU timestamp duration of the most recently completed offscreen 3D pass,...
Definition Graphics.h:1030
virtual void setCloudShadows(float strength, float worldCell, float time, float windSpeed, float windAngle, float coverage, float detail)=0
Dynamic cloud shadows cast on the ground by the default PBR mesh path. strength 0 disables (no change...
virtual bool gpuDrivenScenePassPending() const
Scene pass opening deferred until after the compute cull section.
Definition Graphics.h:391
virtual void gpuDrivenResolve()
Record the fullscreen vis resolve inside the open scene color pass.
Definition Graphics.h:427
virtual eve::Result< void > configureMeshShaderRaster(Shader &shader, const MeshShaderRasterState &state)
Transactionally configure an owned ordinary mesh shader's raster state.
Definition Graphics.h:1847
SceneToneMapping
Final display mapping; None preserves linear color, Aces uses the fitted curve, and Filmic uses Rec....
Definition Graphics.h:1325
const glm::mat4 & getProjection() const
Returns the projection.
Shader * newShader(const std::string &fragGlsl)
Creates a shader. @ownership Caller deletes unless documented otherwise.
Definition Graphics.h:1728
virtual Shader * newHairShaderFromSpv(const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv)=0
Hair/fur card shader (alpha blend + Kajiya-Kay). Empty vert → mesh3d_hair.vert. Owned by Graphics.
virtual void drawMeshGBufferAlpha(Mesh *mesh, const glm::mat4 &mvp, const glm::mat4 &model, float nearZ, float farZ, Texture *albedo=nullptr, float tintR=1.f, float tintG=1.f, float tintB=1.f, float motionX=0.f, float motionY=0.f, float roughness=0.45f, float metallic=0.f)=0
GBuffer fill with alpha-cutout discard (card/billboard geometry such as sprite-stack slices): same ou...
virtual void drawSolidRectRotated(float cx, float cy, float w, float h, float degrees, const Color &color, BlendMode blend=BlendMode::Alpha)=0
Rotated solid quad degrees clockwise (screen Y-down) around (cx, cy).
std::unique_ptr< Exposure > pipelineExposure_
Definition Graphics.h:2272
virtual void setMesh3DLight(const glm::vec3 &dir, const glm::vec3 &color)=0
Directional light for subsequent drawMesh calls (world-space direction toward surface).
virtual bool beginFrameReadback(const std::string &path)
Queue an asynchronous readback of the current frame to a PNG file.
Definition Graphics.h:1517
virtual bool releaseShader(Shader *shader)
Eagerly releases a shader created by this Graphics.
Definition Graphics.h:1908
virtual void drawVoxelFaceInstances(const uint32_t *packed, int count, float originX, float originY, float originZ, const std::string &faceDir, Texture *atlas, int tilesPerRow=16, const uint32_t *ao=nullptr)=0
Instanced voxel face rectangles (32-bit packed instances). ao: optional per-instance ambient-occlusio...
virtual void setCanvas(Canvas *canvas)=0
nullptr or this → screen. Switching flushes pending draws to the previous target.
virtual bool isCanvasActive() const =0
True when canvas active.
virtual float getSceneExposure() const =0
Current linear manual exposure multiplier.
virtual void drawTexturedRectShaderDepthMotion(Texture *color, Texture *depth, Texture *motion, Shader *shader, float x, float y, float w, float h, const Color &tint)=0
Post draw with color, depth/history and motion/reactive textures.
virtual float getMaxAnisotropy() const =0
Device max supported anisotropy (1 if unsupported). Valid after initWithWindow.
virtual void setSceneTransitionFx(float vignette, float vignetteSmoothness, float lensDistortion, float lensScale)=0
Set final-composite vignette and radial lens distortion strengths in [0,1].
virtual Result< void > drawMeshShaderInstances(Mesh &mesh, Shader &shader, const glm::mat4 &model, const Color &tint, std::uint32_t first, std::uint32_t count)
Draw a checked range from a resource shader's immutable instance matrix buffer. @ownership Mesh and S...
Definition Graphics.h:1116
std::unique_ptr< RenderControl > renderControl_
Definition Graphics.h:2264
virtual void setDecalCamera(const glm::mat4 &viewProj, float nearZ, float farZ)=0
Per-frame camera constants for the decal pass (world-space reconstruction from the G-buffer depth)....
virtual void markSwapchainDirty()
Request swapchain recreation on next present/begin3DFrame.
Definition Graphics.h:1554
virtual void setMesh3DSurface(SurfaceMode mode, BlendMode blend, bool depthWrite, bool doubleSided, float alphaCutoff, const std::string &alphaTechnique="cutoff")=0
Select pipeline state for subsequent mesh draws.
void drawTextRGBA(Font *font, const std::string &text, float x, float y, float r, float g, float b, float a, float scale=1.f)
Script-friendly UTF-8 text drawing overload using RGBA components.
Definition Graphics.h:1674
virtual Texture * newTextureFromFile(const std::string &filename)=0
Creates a texture from file. @ownership Caller deletes unless documented otherwise.
virtual void setSceneColorFilter(const glm::vec3 &color)=0
Set a non-negative linear RGB multiplier applied during final HDR exposure.
virtual void drawTexturedRectUV(Texture *texture, float x, float y, float w, float h, float u0, float v0, float u1, float v1, const Color &color)=0
Draw a textured sub-rect (atlas / tile UVs). texture may be null → solid.
virtual bool isHeadless() const
True when the renderer was initialized via initHeadless().
Definition Graphics.h:494
virtual Texture * newTexture(int width, int height, const uint8_t *rgba, const TextureCreateInfo &info)=0
Creates a texture. @ownership Caller deletes unless documented otherwise.
virtual void setSceneAutoExposure(bool enabled, float minEV, float maxEV)=0
Configure log-average scene auto exposure and its EV clamp range.
virtual glm::vec3 getSceneInverseGamma() const =0
Current pre-tonemap inverse-gamma coefficients.
virtual float getSceneDofFarZ() const =0
Returns the scene dof far z.
virtual bool setMeshSkinningData(Mesh *mesh, const uint16_t *joints4, const float *weights4, int vertexCount)
Upload four joint indices and weights per vertex for built-in GPU skinning.
Definition Graphics.h:882
virtual void setMesh3DSceneDepth(Texture *depth)=0
Optional scene hardware depth (G-buffer hwDepth, Vulkan NDC z) bound to mesh3d shader binding 7....
virtual void gpuDrivenSetEnabled(bool enabled)
Enable/disable the GPU-driven opaque path (no-op when unsupported).
Definition Graphics.h:271
virtual int frameReadbackStatus() const
Async readback state: 0=idle, 1=pending, 2=done, 3=failed.
Definition Graphics.h:1522
virtual uint32_t gpuDrivenMaterialRecord(Material *material)
GPU material-table slot for a material (lazily created).
Definition Graphics.h:280
virtual bool bakeMeshMorph(Mesh *mesh)=0
If mesh morph weights are dirty, bake blended positions and upload to the GPU VBO....
virtual void setMesh3DSkinInfluenceLimit(SkinInfluenceLimit count)=0
Limit GPU skinning to the strongest one, two or four vertex influences.
virtual bool gpuDrivenResolveWanted() const
True when the stage-3 vis+resolve path should run this frame.
Definition Graphics.h:421
virtual void gpuDrivenRecordVisPass()
Record the GBuffer vis pass (opaque indirect draws write visID/visBary).
Definition Graphics.h:424
virtual Shader * newShaderFromSpv(const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv)=0
Create a custom 2D shader from SPIR-V words (vert + frag). Owned by Graphics. Vertex stage may be emp...
virtual void setMesh3DShadowReceive(bool receive)=0
Per-draw: when false, shadow sampling is forced off for the next mesh draw.
virtual image::ImageData * renderEntityIdMask(const std::vector< EntityIdDraw > &draws, const glm::mat4 &viewProj, int w, int h)
Renders entity id mask.
Definition Graphics.h:1066
virtual bool supportsGBufferPost() const
Whether gbuffer-based post-process shaders (AO, GI) can be created on this backend....
Definition Graphics.h:238
virtual Mesh3DSceneColorCaptureStatus captureMesh3DSceneColor()
Make opaque scene color available to subsequent refractive mesh draws.
Definition Graphics.h:1181
virtual void begin3DFrame()=0
Begin a 3D frame: shadow/gbuffer (if pending) then a sampleable scene color pass (color+depth)....
void setFinalSceneTexture(Texture *texture)
Override the HDR source consumed by the next backend scene resolve.
Definition Graphics.h:2070
virtual eve::Result< void > updateTextureRegions(Texture *texture, std::span< const TextureRegionUpload > regions)=0
Validate then upload multiple independent mip-zero RGBA8 regions as one batch.
virtual eve::Result< void > configureMeshShaderSurface(Shader &, BlendMode, bool, bool)
Prepare a custom mesh shader's blend, depth and culling state.
Definition Graphics.h:1830
std::unique_ptr< GlobalIllumination > pipelineGI_
Definition Graphics.h:2267
void points(const std::vector< glm::vec2 > &positions, const std::vector< Color > &colors)
Draws a series of points at the specified positions.
virtual bool supportsGpuDriven3D() const
True when the backend can run GPU-driven opaque draws.
Definition Graphics.h:255
virtual uint32_t gpuDrivenReflectionProbeSlot(Texture *cubemap)
Return/register a bindless cubemap slot for a GPU-driven local probe.
Definition Graphics.h:310
Mesh3DSceneColorCaptureStatus
Observable result of requesting a same-frame mesh SceneColor snapshot.
Definition Graphics.h:1168
void requestSurfaceRecreate() override
Request recreation of the platform render surface on the next frame (Android background/foreground de...
Definition Graphics.h:1561
std::unique_ptr< AmbientOcclusion > pipelineAO_
Definition Graphics.h:2266
virtual void setTextureSampler(Texture *texture, const TextureSampler &sampler)=0
Recreate the sampler for an existing texture (keeps image / mip chain). No-op when texture is null or...
virtual void setSceneLiftGammaGain(const glm::vec3 &lift, const glm::vec3 &inverseGamma, const glm::vec3 &gain)=0
Set pre-tonemap HDR lift, inverse-gamma and gain coefficients.
void polygon(std::string mode, const std::vector< glm::vec2 > &vertices, bool skipLastFilledVertex=true)
Draws a polygon with an arbitrary number of vertices.
virtual float getSceneDofNearZ() const =0
Returns the scene dof near z.
virtual void drawTexturedRect(Texture *texture, float x, float y, float w, float h, const Color &color)=0
Draws textured rect.
virtual void releaseGpuParticleEmitter(GpuParticleHandle handle)
Release a GPU particle emitter. Explicit release may wait for in-flight frames.
Definition Graphics.h:330
virtual Canvas * newHDRCanvas(int width, int height)=0
Create an engine-internal linear RGBA16F post-process target.
virtual void drawMeshGBuffer(Mesh *mesh, const glm::mat4 &mvp, const glm::mat4 &model, float nearZ, float farZ, Texture *albedo=nullptr, float tintR=1.f, float tintG=1.f, float tintB=1.f, float motionX=0.f, float motionY=0.f, float roughness=0.45f, float metallic=0.f)=0
Draws mesh g buffer.
virtual void gpuDrivenCullEmit(const glm::mat4 &viewProj, const glm::vec3 &eye, float fovYDeg, float nearZ, float farZ)
Record the cull + emit compute dispatches for the current frame.
Definition Graphics.h:401
virtual float getSceneDofFocusDistance() const =0
Returns the scene dof focus distance.
void drawScene3D(float x, float y, float w, float h)
Script-friendly 4-arg form (simplesquirrel does not apply C++ defaults).
Definition Graphics.h:952
bool(*)(void *userdata, void *commandBuffer) PresentOverlayFn
Optional overlay drawn inside the swapchain render pass (before end). Used by declarative UI (ImGui)....
Definition Graphics.h:1606
Shader * newShaderFromSpvFile(const std::string &fragPath)
Creates a shader from spv file. @ownership Caller deletes unless documented otherwise.
Definition Graphics.h:1716
virtual void gpuDrivenDrawOpaque()
Draw the opaque geometry with GPU-written indirect commands.
Definition Graphics.h:414
virtual bool gpuDrivenEnabled() const
Whether the GPU-driven opaque path is currently enabled.
Definition Graphics.h:268
virtual Texture * getSceneColorTexture()
Sampleable 3D color target for the current frame (RGB = lit, A = linear depth). Valid after begin3DFr...
Definition Graphics.h:1047
virtual void drawMeshShader(Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint, Shader *shader)=0
Draw mesh with an explicit Mesh3D Shader (nullptr = default PBR pipeline).
virtual bool supportsDeferredLighting() const
True when the backend can run Hybrid clustered deferred lighting.
Definition Graphics.h:245
void printRGBA(const std::string &text, float x, float y, float r, float g, float b, float a, float scale=1.f)
Script-friendly stateful print overload using RGBA components.
Definition Graphics.h:1693
virtual float getSceneTransitionLensScale() const =0
Return the final-composite lens scaling factor.
virtual bool supportsRayTracing() const
True when the Vulkan device enabled the KHR ray-tracing path. WebGPU and software devices return fals...
Definition Graphics.h:262
virtual void gpuDrivenVgComputeSection(const glm::mat4 &viewProj, const glm::vec3 &eye, float fovYDeg, float nearZ, float farZ)
Record the HZB build + cull-params section (VG-only frames).
Definition Graphics.h:467
virtual Mesh * newMeshFromArrays(const float *posXYZ, const float *nrmXYZ, const float *uvST, int vertexCount, const uint32_t *indices, int indexCount)=0
Upload a triangle mesh from packed CPU arrays. Owned by Graphics. posXYZ required (vertexCount*3)....
virtual SceneToneMapping getSceneToneMapping() const
Return the current final display mapping; graphics/render thread only.
Definition Graphics.h:1347
virtual Result< void > replaceShaderFromSpv(Shader &shader, const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv)=0
Transactionally replace an existing shader with SPIR-V stages.
virtual void drawSolidRect(float x, float y, float w, float h, const Color &color, BlendMode blend=BlendMode::Alpha)=0
Internal immediate-mode helper used by RenderSystem / Batcher.
virtual void drawTexturedRectShader5(Texture *color, Texture *depth, Texture *motion, Texture *extra, Texture *specular, Shader *shader, float x, float y, float w, float h, const Color &tint)=0
Post draw with five sampled textures at bindings 0 through 4.
Shader * newMeshShader(const std::string &fragGlsl)
Creates a mesh shader. @ownership Caller deletes unless documented otherwise.
Definition Graphics.h:1866
virtual void end3DFrameToCanvas()=0
Ends 3 d frame to canvas.
virtual float getSceneDofMaxBlur() const =0
Returns the scene dof max blur.
virtual Canvas * newCanvas(int width, int height)=0
Create an offscreen render target (sampleable). Owned by Graphics.
virtual Result< void > replaceShaderFromWgsl(Shader &shader, const std::string &vertWgsl, const std::string &fragWgsl)=0
Transactionally replace an existing shader with WGSL stages.
virtual bool gpuDrivenVgAttachToMesh(Mesh *mesh, std::uint32_t vgAssetId)
Attach an uploaded VG asset to a mesh (routes it to the VG path).
Definition Graphics.h:446
virtual void drawDeferredLighting()
Fullscreen deferred lighting into the open scene-color pass. Samples GBuffer + clustered lights + CSM...
Definition Graphics.h:252
virtual Shader * newMeshShaderFromWgsl(const std::string &vertWgsl, const std::string &fragWgsl)=0
Create a Mesh3D custom shader from WGSL source (WebGPU backend). The WGSL must declare the engine's F...
virtual eve::Result< void > updateTextureRegion(Texture *texture, int x, int y, int width, int height, std::span< const std::uint8_t > rgba, std::size_t bytesPerRow=0)=0
Upload one tightly packed or row-strided RGBA8 rectangle into mip level zero.
virtual void setScreenReadbackEnabled(bool enabled)
When true, each present copies the swapchain to a CPU buffer for getPixel/newImageData....
Definition Graphics.h:1502
virtual Mesh * newMeshFromArraysColored(const float *posXYZ, const float *nrmXYZ, const float *uvST, const float *colorRGBA, int vertexCount, const uint32_t *indices, int indexCount)=0
Upload a triangle mesh with an optional packed RGBA color per vertex.
virtual bool supportsDecal() const
True when the backend can render the screen-space decal layer (box-projected decals writing albedo/no...
Definition Graphics.h:1274
virtual Mesh * newMeshSphere(int slices=32, int stacks=16)=0
Procedural UV sphere (radius 1, Y-up). Owned by Graphics. slices = longitude divisions,...
virtual Texture * newTexture(image::ImageData *data, const TextureCreateInfo &info)=0
Create texture from ImageData with sampler / mipmap options.
virtual void setViewportSize(int width, int height, int pixelwidth, int pixelheight)=0
Sets the current graphics display viewport dimensions.
virtual void drawTexturedRectLitUV(Texture *albedo, Texture *normal, float x, float y, float w, float h, float u0, float v0, float u1, float v1, const Color &color, BlendMode blend=BlendMode::Alpha)=0
Lit 2D draw (albedo + normal map). Uses Lighting2DUBO from setLighting2D. normal may be null → treate...
virtual bool supportsRuntimeGlslCompilation() const
Whether this backend and build can compile GLSL to SPIR-V at runtime.
Definition Graphics.h:214
Texture * takeFinalSceneTexture()
Consume and clear the per-frame HDR scene resolve override. @lifetime Returned texture is borrowed an...
Definition Graphics.h:2073
void setPresentOverlay(PresentOverlayFn fn, void *userdata)
Sets the present overlay.
Definition Graphics.h:1608
void circle(std::string mode, float x, float y, float radius, int points)
Draws a circle using the specified arguments.
virtual RayTracingCaps rayTracingCaps() const
Probed ray-tracing capabilities (empty when unsupported).
Definition Graphics.h:265
virtual Shader * newShaderFromSpvFile(const std::string &vertPath, const std::string &fragPath)=0
Load SPIR-V from files via Filesystem (empty vertPath → default textured vert).
virtual Result< void > gpuDrivenReleaseMaterialRecord(Material *material)
Release a lazily-created GPU material-table record.
Definition Graphics.h:292
virtual void drawTexturedRectShader(Texture *texture, Shader *shader, float x, float y, float w, float h, const Color &color)=0
Draw with an explicit Shader (nullptr = default textured pipeline).
virtual void setMesh3DNormalTexture(Texture *normal)=0
Optional normal map for the next drawMesh / drawMeshShader (nullptr = flat).
virtual bool gpuDrivenCullBegin(const GpuInstance *instances, uint32_t instanceCount)
Upload sorted instances + bucket metadata for the cull chain.
Definition Graphics.h:394
virtual void setMesh3DHeightTexture(Texture *height)=0
Optional height map for parallax (R channel; nullptr = flat / off).
virtual Texture * newCubemap(int faceSize, const uint8_t *rgbaFaces, const TextureCreateInfo &info)=0
Cubemap with GGX specular mips and final diffuse-irradiance mip.
virtual void setMesh3DLighting(const Lighting3DPack &pack)=0
Per-frame ambient + up to 8 lights packed into Mesh3DUBO.
virtual std::uint32_t gpuDrivenVgUpload(const GpuVgAssetUpload &asset)
Upload a virtual-geometry asset into the shared cluster pool.
Definition Graphics.h:434
virtual void drawTexturedRectShaderDepth(Texture *color, Texture *depth, Shader *shader, float x, float y, float w, float h, const Color &tint)=0
Fullscreen/post draw sampling color at binding 0 and depth at binding 1 (hardware D32,...
virtual float getSceneDofFocusRange() const =0
Returns the scene dof focus range.
virtual bool updateGpuParticleEmitter(GpuParticleHandle handle, const GpuParticleUpdate &update, const GpuParticleSpawn *spawns, std::uint32_t spawnCount)
Upload one simulation step and optional spawn commands. @compatibility Preserves the established GPU-...
Definition Graphics.h:337
virtual Texture * newHDRCubemap(int faceSize)
Allocate a linear RGBA16F six-layer staging cubemap for runtime capture.
Definition Graphics.h:562
Dense grass + sparse dark tufts on a mesh. Caller owns GrassField*; GPU Mesh / Shader / Texture are o...
Definition Grass.h:193
Narrow offscreen-Canvas allocation boundary for tools and optional modules.
Definition ICanvasFactory.h:8
Narrow render-target binding boundary for optional tooling modules.
Definition ICanvasTarget.h:6
2D immediate-mode drawing surface (screen or offscreen Canvas).
Definition IGraphics2D.h:33
3D frame / mesh / light / shadow rendering surface.
Definition IGraphics3D.h:51
Texture / mesh / shader / canvas creation and release.
Definition IResourceFactory.h:38
Narrow solid-rectangle draw boundary for UI/debug tooling.
Definition ISolidRectRenderer.h:5
SLG / large-map war-fog overlay driven by a dual-scrolling cloud texture and an RGBA mask bridge (R u...
Definition MapFog.h:18
Packages shading method + surface parameters into one attachable asset.
Definition Material.h:35
Screen-space model outline (t3ssel8r-style), computed from the GBuffer hardware depth + world-normal ...
Definition Outline.h:33
Authoritative owner for primitives that persist across frames.
Definition PrimitiveScene.h:167
Pixel-space sub-rectangle of a Texture (atlas cell / sprite frame). UV conversion uses the texture's ...
Definition Quad.h:11
Incremental six-face HDR scene capture for a runtime reflection probe.
Definition ReflectionProbeCapture.h:26
Scene-level stable selection of published reflection probes for a camera.
Definition ReflectionProbeRegistry.h:14
Default renderable entity for declarative 2D sprites / solid quads.
Definition RenderSystem.h:71
Screen-space reflections (SSR) as a fullscreen post pass. @lifetime All Graphics and texture argument...
Definition ScreenSpaceReflection.h:30
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
Dynamic water surface with sky reflection and animated ripples.
Definition Water.h:68
Flowing waterfall (falling water sheet) rendered on a vertical plane.
Definition Waterfall.h:34
Runtime groom drawable (UE UGroomComponent analogue).
Definition GroomInstance.h:40
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
std::uint64_t GpuParticleHandle
Opaque backend-owned GPU particle emitter handle.
Definition GpuParticles.h:36
eve::Color Color
RGBA color used by every graphics draw call. Lives inside eve::graphics so including a graphics heade...
Definition Color.h:13
constexpr GpuParticleHandle kInvalidGpuParticleHandle
Invalid GPU particle handle returned when the backend cannot allocate the resource.
Definition GpuParticles.h:39
constexpr uint32_t kInvalidGpuDrivenSlot
GPU-driven rendering shared constants + std430 GPU layouts.
Definition GpuDrivenTypes.h:19
SkinInfluenceLimit
Number of strongest vertex influences retained by GPU skinning.
Definition IGraphics3D.h:19
GpuResidentSubmitStatus
Structured result for direct resident-instance submission.
Definition GpuDrivenTypes.h:48
eve::Subscription Subscription
Compatibility alias for the common observer lifetime token.
Definition PropertyAccess.h:142
@ Unsupported
Transient backend buffer slice shared between sibling GPU modules. @ownership Non-owning; nativeHandl...
Definition GpuResidentBufferView.h:19
CPU-built clustered lighting upload for one frame/camera. Point lights are clustered; directional lig...
Definition ClusteredLight.h:33
Per-instance GPU record (std430). Mirrors GLSL GpuInstance.
Definition GpuDrivenTypes.h:106
Parameters for rendering a resident GPU particle emitter.
Definition GpuParticles.h:83
GPU particle state uploaded only for newly spawned particles.
Definition GpuParticles.h:42
Delayed non-blocking counters from a resident GPU emitter.
Definition GpuParticles.h:113
Parameters for one resident GPU simulation step.
Definition GpuParticles.h:65
Direct-render description for a GPU-authored array of GpuInstance records. @ownership buckets and buf...
Definition GpuDrivenTypes.h:40
Neutral GPU upload for one virtual-geometry asset. Raw arrays so the graphics module does not depend ...
Definition GpuDrivenTypes.h:147
DeferredFileTexture public API.
Definition Graphics.h:2225
Surface present formats the current device/window can offer.
Definition Graphics.h:1331
Per-pixel mesh entity-ID pass. Renders each EntityIdDraw's mesh with the given flat idColor (RGB enco...
Definition Graphics.h:1058
Backend-owned layout facts for a mesh uploaded through Graphics.
Definition Graphics.h:86
std::uint32_t vertexStride
Definition Graphics.h:89
std::uint32_t indexElementSize
Definition Graphics.h:90
Value snapshot of custom mesh rasterization state, independent of blending/culling.
Definition MeshShaderRasterState.h:13
Owning material parameter snapshot; texture pointers remain borrowed. Base color/metallic/roughness c...
Definition PbrSurface.h:218
Hardware ray-tracing capabilities probed once at Vulkan device creation.
Definition RayTracingCaps.h:16
Inputs for descriptor set 1 of a resource mesh program.
Definition ShaderResources.h:67
Options for Graphics::newTexture / newCubemap. When generateMipmaps is true and sampler....
Definition TextureSampler.h:110
One borrowed RGBA8 source rectangle for a batched texture update. @ownership rgba remains owned by th...
Definition Graphics.h:70
std::span< const std::uint8_t > rgba
Definition Graphics.h:75
Sampler state for a Texture (filter, wrap, mip LOD, anisotropy). Defaults match historical engine beh...
Definition TextureSampler.h:27