载入中...
搜索中...
未找到
eve::graphics::vulkan::Graphics类 参考final

EVENGINE_API_BACKENDS public API. 更多...

#include <Graphics.h>

类 eve::graphics::vulkan::Graphics 继承关系图:
eve::graphics::Graphics eve::service::IGpuTimer eve::IFramePresentation eve::graphics::IPostFX eve::graphics::ISolidRectRenderer eve::graphics::IResourceFactory eve::graphics::ICanvasTarget eve::graphics::ICanvasFactory eve::graphics::IGraphics3D eve::graphics::IGraphics2D eve::IWindowSurfaceHost eve::graphics::Canvas eve::Module

类

struct  GpuParticleResource
 
struct  LitBatch
 LitBatch public API. 更多...
 
struct  PbrResources
 

Public 成员函数

 Graphics ()
 Starts asynchronous VkInstance creation (overlaps later window init).
 
 ~Graphics () override
 Graphics.
 
void initGpuTiming ()
 Creates the GPU timestamp query pool; call after device init.
 
void writeGpuTimestampBegin ()
 Writes a begin timestamp into the current present command buffer.
 
void writeGpuTimestampEnd ()
 Writes an end timestamp into the current present command buffer.
 
void readGpuFrameTiming ()
 Reads the query results after the frame's submit has completed.
 
bool gpuTimingAvailable () const override
 Gpu timing available.
 
float gpuFrameMs () const override
 Gpu frame ms.
 
std::string getBackendName () const override
 Returns the backend name.
 
bool supportsRuntimeGlslCompilation () const override
 Supports runtime glsl compilation.
 
void initWithWindow (void *nativeWindow) override
 Initializes with window.
 
void initHeadless (int width, int height) override
 Initializes headless.
 
bool isHeadless () const override
 True when headless.
 
void present () override
 Present.
 
void requestSurfaceRecreate () override
 Request surface recreate.
 
void onNativeWindowDestroyed () override
 On native window destroyed.
 
void setScreenReadbackEnabled (bool enabled) override
 Sets the screen readback enabled.
 
void setVSync (bool enabled) override
 Sets the v sync.
 
void setMsaaSamples (int samples) override
 Sets the msaa samples.
 
int getMsaaSamples () const override
 Returns the msaa samples.
 
void setViewportSize (int width, int height, int pixelwidth, int pixelheight) override
 Sets the viewport size.
 
const GpuDrivenCaps & gpuDrivenCaps () const
 Capabilities probed at device creation; empty when unavailable.
 
const RayTracingCaps & rayTracingCapsRef () const
 Hardware ray-tracing capabilities probed at device creation.
 
RayTracingCaps rayTracingCaps () const override
 Ray tracing caps.
 
bool supportsRayTracing () const override
 Supports ray tracing.
 
FrameArena & currentFrameArena ()
 Per-frame arena for the current swapchain frame slot.
 
uint32_t materialTableGetOrCreate (eve::graphics::Material *material)
 Get (or lazily create) the GPU material-table slot for a material.
 
void syncMaterialTable ()
 Upload all registered material records to the GPU table.
 
uint32_t bindlessSlot2D (const GpuTexture *tex) const
 Bindless slot 2 d.
 
uint32_t bindlessSlotCube (const GpuTexture *tex) const
 Bindless slot cube.
 
bool supportsGpuDriven3D () const override
 Supports gpu driven 3 d.
 
bool supportsDeferredLighting () const override
 Supports deferred lighting.
 
void drawDeferredLighting () override
 Draws deferred lighting.
 
bool gpuDrivenEnabled () const override
 Gpu driven enabled.
 
void gpuDrivenSetEnabled (bool enabled) override
 Gpu driven set enabled.
 
uint32_t gpuDrivenMeshRecord (Mesh *mesh) override
 Gpu driven mesh record.
 
uint32_t gpuDrivenMaterialRecord (Material *material) override
 Gpu driven material record.
 
bool gpuDrivenMaterialUsable (Material *material) override
 Gpu driven material usable.
 
Result< void > gpuDrivenReleaseMaterialRecord (Material *material) override
 Gpu driven release material record.
 
uint32_t gpuDrivenReflectionProbeSlot (Texture *cubemap) override
 Gpu driven reflection probe slot.
 
bool gpuDrivenSubmitOpaque (const GpuInstance *instances, uint32_t instanceCount) override
 Gpu driven submit opaque.
 
GpuResidentSubmitStatus gpuDrivenSubmitResident (const GpuResidentInstanceBatch &batch) override
 Gpu driven submit resident.
 
Texture * getSceneLinearDepthTexture () override
 Returns the scene linear depth texture.
 
bool supportsGpuParticles () const override
 Supports gpu particles.
 
bool canSubmitGpuParticles () const override
 Can submit gpu particles.
 
GpuParticleHandle createGpuParticleEmitter (std::uint32_t capacity) override
 Creates gpu particle emitter.
 
void releaseGpuParticleEmitter (GpuParticleHandle handle) override
 Release gpu particle emitter.
 
void resetGpuParticleEmitter (GpuParticleHandle handle) override
 Resets gpu particle emitter.
 
bool updateGpuParticleEmitter (GpuParticleHandle handle, const GpuParticleUpdate &update, const GpuParticleSpawn *spawns, std::uint32_t spawnCount) override
 Updates gpu particle emitter.
 
bool drawGpuParticleEmitter (GpuParticleHandle handle, const GpuParticleDraw &draw) override
 Draws gpu particle emitter.
 
GpuParticleStats getGpuParticleStats (GpuParticleHandle handle) const override
 Returns the gpu particle stats.
 
uint32_t debugBindlessIndex (Texture *tex) const
 Test/debug helpers (valid when the GPU-driven path is live).
 
uint32_t debugMeshRecordIndex (Mesh *mesh) const
 Debug mesh record index.
 
uint32_t debugLastGpuDrivenDrawCount () const
 Indirect draws emitted by the last successful GPU-driven submit.
 
void waitForSharedGpuResources ()
 Block until all in-flight GPU work (all frames) has completed.
 
bool gpuDrivenCullEnabled () const
 Stage 2 cull is live for this frame (GPU-written commands).
 
bool gpuDrivenScenePassPending () const
 Scene color pass is deferred until after the compute cull section.
 
bool gpuDrivenCullBegin (const GpuInstance *instances, uint32_t instanceCount)
 Gpu driven cull begin.
 
void gpuDrivenCullEmit (const glm::mat4 &viewProj, const glm::vec3 &eye, float fovYDeg, float nearZ, float farZ)
 Gpu driven cull emit.
 
void gpuDrivenOpenScenePass ()
 Gpu driven open scene pass.
 
void gpuDrivenDrawOpaque ()
 Gpu driven draw opaque.
 
bool gpuDrivenResolveWanted () const override
 Stage 3: vis+resolve live for this frame (opt-in, 1x scene pass).
 
void gpuDrivenRecordVisPass () override
 Gpu driven record vis pass.
 
void gpuDrivenResolve () override
 Gpu driven resolve.
 
uint32_t gpuDrivenVgUpload (const GpuVgAssetUpload &asset) override
 Gpu driven vg upload.
 
uint32_t gpuDrivenVgAssetId (Mesh *mesh) const override
 Gpu driven vg asset id.
 
bool gpuDrivenVgAttachToMesh (Mesh *mesh, uint32_t vgAssetId) override
 Gpu driven vg attach to mesh.
 
bool gpuDrivenVgSetInstance (uint32_t vgAssetId, const glm::mat4 &model, uint32_t materialId) override
 Gpu driven vg set instance.
 
void gpuDrivenVgComputeSection (const glm::mat4 &viewProj, const glm::vec3 &eye, float fovYDeg, float nearZ, float farZ) override
 Gpu driven vg compute section.
 
uint32_t debugGpuDrivenVgVisibleCount () const
 Debug readback: visible VG clusters from the last cull.
 
uint32_t debugGpuDrivenVisibleCount () const
 Debug readback: visible instances / non-empty buckets from the last cull.
 
uint32_t debugGpuDrivenCulledDrawCount () const
 Debug gpu driven culled draw count.
 
void drawSolidRect (float x, float y, float w, float h, const Color &color, BlendMode blend=BlendMode::Alpha) override
 Draws solid rect.
 
void drawPrimitiveCanvas (const PrimitiveCanvas2D &canvas) override
 Draws primitive canvas.
 
void drawSolidRectRotated (float cx, float cy, float w, float h, float degrees, const Color &color, BlendMode blend=BlendMode::Alpha) override
 Draws solid rect rotated.
 
void pushValidationScope () override
 Pushes validation scope.
 
void popValidationScope () override
 Pops validation scope.
 
Texture * newTexture (int width, int height, const uint8_t *rgba, bool repeatU=false, bool repeatV=false) override
 Creates a texture. @ownership Caller deletes unless documented otherwise.
 
Texture * newTexture (int width, int height, const uint8_t *rgba, const TextureCreateInfo &info) override
 Creates a texture. @ownership Caller deletes unless documented otherwise.
 
Result< Texture * > newTextureMipChain (uint32_t width, uint32_t height, uint32_t levels, std::span< const uint8_t > rgba) override
 Creates a texture mip chain. @ownership Caller deletes unless documented otherwise.
 
Result< Texture * > newTextureArrayRgba16f (uint32_t width, uint32_t height, uint32_t layers, std::span< const uint16_t > rgbaHalf) override
 Creates a texture array rgba 16 f. @ownership Caller deletes unless documented otherwise.
 
Result< Texture * > newTexture3DRgba8 (uint32_t width, uint32_t height, uint32_t depth, std::span< const uint8_t > rgba) override
 Creates a texture 3 d rgba 8. @ownership Caller deletes unless documented otherwise.
 
Texture * newCubemap (int faceSize, const uint8_t *rgbaFaces) override
 Creates a cubemap. @ownership Caller deletes unless documented otherwise.
 
Texture * newCubemap (int faceSize, const uint8_t *rgbaFaces, const TextureCreateInfo &info) override
 Creates a cubemap. @ownership Caller deletes unless documented otherwise.
 
Texture * newHDRCubemap (int faceSize) override
 Creates a hdr cubemap. @ownership Caller deletes unless documented otherwise.
 
bool copyHDRCanvasToCubemapFace (Canvas *source, Texture *cubemap, int face) override
 Copies hdr canvas to cubemap face.
 
bool copyHDRCanvasesToCubemap (Canvas *const *sources, int faceCount, Texture *cubemap) override
 Copies hdr canvases to cubemap.
 
bool filterHDRReflectionCubemap (Texture *cubemap, int sampleCount=64) override
 Filter hdr reflection cubemap.
 
Texture * newTexture (image::ImageData *data) override
 Creates a texture. @ownership Caller deletes unless documented otherwise.
 
Texture * newTexture (image::ImageData *data, const TextureCreateInfo &info) override
 Creates a texture. @ownership Caller deletes unless documented otherwise.
 
ResultRef< Texture > newSharedTexture (image::ImageData *data, const std::string &contentKey) override
 Reuse immutable imported pixels. Graphics owns the returned texture until release or shutdown.
 
void setTextureSampler (Texture *texture, const TextureSampler &sampler) override
 Sets the texture sampler.
 
float getMaxAnisotropy () const override
 Returns the max anisotropy.
 
Texture * newTextureFromFile (const std::string &filename) override
 Creates a texture from file. @ownership Caller deletes unless documented otherwise.
 
bool reloadTextureFromFile (const std::string &filename) override
 Reloads texture from file.
 
bool uploadDeferredFileTexture (Texture *texture, image::ImageData *data) override
 Uploads deferred file texture.
 
bool releaseTexture (Texture *texture) override
 Release texture.
 
bool updateTexture (Texture *texture, int width, int height, const uint8_t *rgba) override
 Updates texture.
 
eve::Result< void > updateTextureFromResidentRgba8 (Texture *texture, const GpuResidentBufferView &source, int width, int height) override
 Updates texture from resident rgba 8.
 
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) override
 Updates texture region.
 
eve::Result< void > updateTextureRegions (Texture *texture, std::span< const TextureRegionUpload > regions) override
 Updates texture regions.
 
bool replaceTexturePixels (Texture *tex, image::ImageData *data)
 Replace texture pixels.
 
bool replaceTexturePixelsRGBA (Texture *tex, int w, int h, const uint8_t *rgba)
 Replace texture pixels rgba.
 
void drawTexturedRect (Texture *texture, float x, float y, float w, float h, const Color &color) override
 Draws textured rect.
 
void drawTexturedRectShader (Texture *texture, Shader *shader, float x, float y, float w, float h, const Color &color) override
 Draws textured rect shader.
 
void drawTexturedRectUV (Texture *texture, float x, float y, float w, float h, float u0, float v0, float u1, float v1, const Color &color) override
 Draws textured rect uv.
 
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) override
 Draws textured rect shader uv.
 
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) override
 Draws textured rect shader uv rotated.
 
void drawTexturedRectShaderDepth (Texture *color, Texture *depth, Shader *shader, float x, float y, float w, float h, const Color &tint) override
 Draws textured rect shader depth.
 
void drawTexturedRectShaderDepthMotion (Texture *color, Texture *depth, Texture *motion, Shader *shader, float x, float y, float w, float h, const Color &tint) override
 Draws textured rect shader depth motion.
 
void drawTexturedRectShader4 (Texture *color, Texture *depth, Texture *motion, Texture *extra, Shader *shader, float x, float y, float w, float h, const Color &tint) override
 Draws textured rect shader 4.
 
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) override
 Draws textured rect shader 5.
 
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) override
 Draws scene color distortion uv rotated.
 
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) override
 Draws textured rect lit uv.
 
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) override
 Draws textured rect lit uv rotated.
 
void setLighting2D (const Lighting2DUBO &ubo) override
 Sets the lighting 2 d.
 
Shader * newShaderFromSpv (const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv) override
 Creates a shader from spv. @ownership Caller deletes unless documented otherwise.
 
Shader * newShaderFromSpvFile (const std::string &vertPath, const std::string &fragPath) override
 Creates a shader from spv file. @ownership Caller deletes unless documented otherwise.
 
Shader * newShader (const std::string &vertGlsl, const std::string &fragGlsl) override
 Creates a shader. @ownership Caller deletes unless documented otherwise.
 
Shader * newMeshShaderFromSpv (const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv) override
 Creates a mesh shader from spv. @ownership Caller deletes unless documented otherwise.
 
Shader * newMeshShaderFromWgsl (const std::string &vertWgsl, const std::string &fragWgsl) override
 Creates a mesh shader from wgsl. @ownership Caller deletes unless documented otherwise.
 
Shader * newShaderFromWgsl (const std::string &vertWgsl, const std::string &fragWgsl) override
 Creates a shader from wgsl. @ownership Caller deletes unless documented otherwise.
 
Result< void > replaceShaderFromSpv (Shader &shader, const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv) override
 Replace shader from spv.
 
Result< void > replaceMeshShaderResources (Shader &shader, const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv, const ShaderResourceInputs &resources) override
 Replace mesh shader resources.
 
Result< void > replaceShaderFromWgsl (Shader &shader, const std::string &vertWgsl, const std::string &fragWgsl) override
 Replace shader from wgsl.
 
Result< void > replaceShaderFromGlsl (Shader &shader, const std::string &vertGlsl, const std::string &fragGlsl) override
 Replace shader from glsl.
 
Shader * newMeshShader (const std::string &vertGlsl, const std::string &fragGlsl) override
 Creates a mesh shader. @ownership Caller deletes unless documented otherwise.
 
Shader * newHairShaderFromSpv (const std::vector< uint32_t > &vertSpv, const std::vector< uint32_t > &fragSpv) override
 Creates a hair shader from spv. @ownership Caller deletes unless documented otherwise.
 
Shader * newHairShaderFromWgsl (const std::string &vertWgsl, const std::string &fragWgsl) override
 Creates a hair shader from wgsl. @ownership Caller deletes unless documented otherwise.
 
bool releaseShader (Shader *shader) override
 Release shader.
 
eve::Result< void > configureMeshShaderSurface (Shader &shader, BlendMode blend, bool depthWrite, bool doubleSided) override
 Configure mesh shader surface.
 
eve::Result< void > configureMeshShaderRaster (Shader &shader, const MeshShaderRasterState &state) override
 Configure mesh shader raster.
 
Mesh * newMeshFromAssimp (const ::aiMesh &mesh) override
 Creates a mesh from assimp. @ownership Caller deletes unless documented otherwise.
 
Mesh * newMeshFromAssimp (const ::aiMesh &mesh, const aiMatrix4x4 &worldTransform) override
 Creates a mesh from assimp. @ownership Caller deletes unless documented otherwise.
 
Mesh * newMeshFromArrays (const float *posXYZ, const float *nrmXYZ, const float *uvST, int vertexCount, const uint32_t *indices, int indexCount) override
 Creates a mesh from arrays. @ownership Caller deletes unless documented otherwise.
 
Mesh * newMeshFromArraysColored (const float *posXYZ, const float *nrmXYZ, const float *uvST, const float *colorRGBA, int vertexCount, const uint32_t *indices, int indexCount) override
 Create a mesh with a packed linear RGBA vertex-color stream.
 
std::optional< eve::graphics::MeshBackendDescriptor > describeMesh (Mesh *mesh) const override
 Return layout facts from the owned Vulkan mesh upload.
 
bool bakeMeshMorph (Mesh *mesh) override
 If mesh morph weights are dirty, bake blended positions and upload to the GPU VBO. Returns true when an upload happened. No-op when no morph data / not dirty / null.
 
bool updateMeshVertices (Mesh *mesh, const float *posXYZ, const float *nrmXYZ, const float *uvST, int vertexCount, const uint32_t *indices, int indexCount) override
 Updates mesh vertices.
 
bool setMeshSkinningData (Mesh *mesh, const uint16_t *joints4, const float *weights4, int vertexCount) override
 Sets the mesh skinning data.
 
Mesh * newMeshSphere (int slices=32, int stacks=16) override
 Creates a mesh sphere. @ownership Caller deletes unless documented otherwise.
 
Mesh * newMeshCylinder (int slices=32, int stacks=1, bool caps=true) override
 Creates a mesh cylinder. @ownership Caller deletes unless documented otherwise.
 
bool releaseMesh (Mesh *mesh) override
 Release mesh.
 
void begin3DFrame () override
 Begins 3 d frame.
 
void begin3DFrameToCanvas (Canvas *canvas) override
 Begins 3 d frame to canvas.
 
void end3DFrameToCanvas () override
 Ends 3 d frame to canvas.
 
void drawPrimitiveScene (const PrimitiveSceneCanvas3D &canvas) override
 Draws primitive scene.
 
float getLastOffscreen3DGpuDurationMs () const override
 Returns the last offscreen 3 d gpu duration ms.
 
void setMesh3DViewProj (const glm::mat4 &viewProj) override
 Sets the mesh 3 d view proj.
 
void setMesh3DView (const glm::mat4 &view) override
 Sets the mesh 3 d view.
 
void setMesh3DClip (float nearZ, float farZ) override
 Sets the mesh 3 d clip.
 
Texture * getSceneColorTexture () override
 Returns the scene color texture.
 
image::ImageData * renderEntityIdMask (const std::vector< eve::graphics::Graphics::EntityIdDraw > &draws, const glm::mat4 &viewProj, int width, int height) override
 Renders entity id mask.
 
image::ImageData * readGBufferToImageData (const std::string &name) override
 Reads g buffer to image data.
 
image::ImageData * readDecalLayerToImageData (const std::string &attachment) override
 Reads decal layer to image data.
 
void drawMesh (Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint) override
 Draws mesh.
 
void drawMeshShader (Mesh *mesh, const glm::mat4 &model, Texture *texture, const Color &tint, Shader *shader) override
 Draws mesh shader.
 
Result< void > drawMeshShaderInstances (Mesh &mesh, Shader &shader, const glm::mat4 &model, const Color &tint, std::uint32_t first, std::uint32_t count) override
 Draws mesh shader instances.
 
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) override
 Draws voxel face instances.
 
void setMesh3DNormalTexture (Texture *normal) override
 Sets the mesh 3 d normal texture.
 
void setMesh3DPackedNormalMask (bool enabled) override
 Sets the mesh 3 d packed normal mask.
 
void setMesh3DHeightTexture (Texture *height) override
 Sets the mesh 3 d height texture.
 
void setMesh3DVirtualTexture (bool enabled, int pageCountX, int pageCountY, int atlasSlotsX, int atlasSlotsY, float borderFraction) override
 Sets the mesh 3 d virtual texture.
 
void setMesh3DSceneDepth (Texture *depth) override
 Sets the mesh 3 d scene depth.
 
void setMesh3DSceneColor (Texture *color) override
 Sets the mesh 3 d scene color.
 
Mesh3DSceneColorCaptureStatus captureMesh3DSceneColor () override
 Capture mesh 3 d scene color.
 
void setMesh3DMaterial (float metallic, float roughness) override
 Sets the mesh 3 d material.
 
Result< void > setMesh3DPbrSurface (const PbrSurface *surface) override
 Sets the mesh 3 d pbr surface.
 
void setMesh3DSurface (SurfaceMode mode, BlendMode blend, bool depthWrite, bool doubleSided, float alphaCutoff, const std::string &alphaTechnique="cutoff") override
 Sets the mesh 3 d surface.
 
void setMesh3DTexCellBomb (float cellScale, float strength, float rotAmount=1.f) override
 Sets the mesh 3 d tex cell bomb.
 
void setMesh3DParallax (float scale, float minLayers=8.f, float maxLayers=32.f) override
 Sets the mesh 3 d parallax.
 
void setMesh3DLodDither (float weight, bool reverse, bool enabled) override
 Sets the mesh 3 d lod dither.
 
void setMesh3DLighting (const Lighting3DPack &pack) override
 Sets the mesh 3 d lighting.
 
void setCloudShadows (float strength, float worldCell, float time, float windSpeed, float windAngle, float coverage, float detail) override
 Sets the cloud shadows.
 
void setMesh3DClusteredLighting (const ClusteredLightingUpload &upload) override
 Sets the mesh 3 d clustered lighting.
 
void setMesh3DClusteredActive (bool active) override
 Sets the mesh 3 d clustered active.
 
void setMesh3DSSAO (float intensity) override
 Sets the mesh 3 dssao.
 
void setMesh3DLight (const glm::vec3 &dir, const glm::vec3 &color) override
 Sets the mesh 3 d light.
 
void setMesh3DCameraPos (const glm::vec3 &eye) override
 Sets the mesh 3 d camera pos.
 
void setMesh3DEnv (Texture *cube, float intensity) override
 Sets the mesh 3 d env.
 
void setMesh3DEnvProbe (const glm::vec3 &center, const glm::vec3 &extent) override
 Sets the mesh 3 d env probe.
 
void setMesh3DReflectionProbes (const ReflectionProbeUpload &upload) override
 Sets the mesh 3 d reflection probes.
 
Result< void > setSceneToneMapping (SceneToneMapping mode) override
 Sets the scene tone mapping.
 
SceneToneMapping getSceneToneMapping () const override
 Returns the scene tone mapping.
 
Result< void > setDisplayOutputMode (DisplayOutputMode mode) override
 Sets the display output mode.
 
Result< void > setDisplayHdrCalibration (float paperWhiteNits, float peakNits) override
 Sets the display hdr calibration.
 
Result< DisplayOutputSupport > queryDisplayOutputSupport () const override
 Queries display output support.
 
Result< void > setScenePhotographicVignette (float intensity) override
 Set the render-thread photographic vignette; inherited validation and ownership contract.
 
float getScenePhotographicVignette () const override
 Read the current render-thread photographic vignette.
 
void setSceneExposure (float exposure) override
 Sets the scene exposure.
 
float getSceneExposure () const override
 Returns the scene exposure.
 
void setSceneColorFilter (const glm::vec3 &color) override
 Sets the scene color filter.
 
glm::vec3 getSceneColorFilter () const override
 Returns the scene color filter.
 
void setSceneLiftGammaGain (const glm::vec3 &lift, const glm::vec3 &inverseGamma, const glm::vec3 &gain) override
 Sets the scene lift gamma gain.
 
glm::vec3 getSceneLift () const override
 Returns the scene lift.
 
glm::vec3 getSceneInverseGamma () const override
 Returns the scene inverse gamma.
 
glm::vec3 getSceneGain () const override
 Returns the scene gain.
 
void setSceneTransitionFx (float vignette, float vignetteSmoothness, float lensDistortion, float lensScale) override
 Sets the scene transition fx.
 
float getSceneTransitionVignette () const override
 Returns the scene transition vignette.
 
float getSceneTransitionVignetteSmoothness () const override
 Returns the scene transition vignette smoothness.
 
float getSceneTransitionLensDistortion () const override
 Returns the scene transition lens distortion.
 
float getSceneTransitionLensScale () const override
 Returns the scene transition lens scale.
 
void setSceneAutoExposure (bool enabled, float minEV, float maxEV) override
 Sets the scene auto exposure.
 
bool getSceneAutoExposure () const override
 Returns the scene auto exposure.
 
float getSceneAutoExposureMinEV () const override
 Returns the scene auto exposure min ev.
 
float getSceneAutoExposureMaxEV () const override
 Returns the scene auto exposure max ev.
 
void setSceneBloom (float intensity, float threshold) override
 Sets the scene bloom.
 
float getSceneBloomIntensity () const override
 Returns the scene bloom intensity.
 
float getSceneBloomThreshold () const override
 Returns the scene bloom threshold.
 
void setSceneDepthOfField (float focusDistance, float maxBlurPx, float focusRange, float nearZ, float farZ) override
 Sets the scene depth of field.
 
float getSceneDofFocusDistance () const override
 Returns the scene dof focus distance.
 
float getSceneDofMaxBlur () const override
 Returns the scene dof max blur.
 
float getSceneDofFocusRange () const override
 Returns the scene dof focus range.
 
float getSceneDofNearZ () const override
 Returns the scene dof near z.
 
float getSceneDofFarZ () const override
 Returns the scene dof far z.
 
void setMesh3DShadows (const ShadowUpload &upload) override
 Sets the mesh 3 d shadows.
 
void setMesh3DShadowReceive (bool receive) override
 Sets the mesh 3 d shadow receive.
 
void setMesh3DSkinInfluenceLimit (SkinInfluenceLimit count) override
 Sets the mesh 3 d skin influence limit.
 
void beginShadowPass (int cascadeIndex) override
 Begins shadow pass.
 
void drawMeshShadow (Mesh *mesh, const glm::mat4 &lightMVP, bool doubleSided=true) override
 Draws mesh shadow.
 
void drawMeshShadowAlpha (Mesh *mesh, const glm::mat4 &lightMVP, Texture *albedo=nullptr, bool doubleSided=true, float lodWeight=1.f, bool lodFadeReverse=false, bool lodDither=false) override
 Draws mesh shadow alpha.
 
void endShadowPass () override
 Ends shadow pass.
 
void beginGBufferPass (int width, int height) override
 Begins g buffer pass.
 
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) override
 Draws mesh g buffer.
 
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) override
 Draws mesh g buffer alpha.
 
void endGBufferPass () override
 Ends g buffer pass.
 
bool supportsDecal () const override
 Supports decal.
 
void beginDecalPass (int width, int height) override
 Begins decal pass.
 
void setDecalCamera (const glm::mat4 &viewProj, float nearZ, float farZ) override
 Sets the decal camera.
 
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) override
 Draws decal.
 
void endDecalPass () override
 Ends decal pass.
 
Canvas * newCanvas (int width, int height) override
 Creates a canvas. @ownership Caller deletes unless documented otherwise.
 
Canvas * newHDRCanvas (int width, int height) override
 Creates a hdr canvas. @ownership Caller deletes unless documented otherwise.
 
void setCanvas (Canvas *canvas) override
 Sets the canvas.
 
bool isCanvasActive () const override
 True when canvas active.
 
Canvas * getCanvas () const override
 Returns the canvas.
 
Texture * getTexture () override
 Returns the texture.
 
image::ImageData * newImageData () override
 Creates a image data. @ownership Caller deletes unless documented otherwise.
 
void draw (eve::graphics::Graphics *gfx, const glm::mat4 &matrix) const override
 Draws .
 
void draw (Canvas *C, const glm::mat4 &matrix) const override
 Draws .
 
void clear (std::optional< Color > color, std::optional< int > stencil, std::optional< double > depth) override
 Clears .
 
Color getPixel (int x, int y) override
 Returns the pixel.
 
vkb::Device & getDevice ()
 Returns the device.
 
vk::CommandPool getUploadPool () const
 Returns the upload pool.
 
bool canRecordPostSceneGpuWork () const
 True when the present command buffer is open and the scene-color pass has ended, so post-scene GPU work (e.g. ray tracing) can record into the same frame stream.
 
vk::CommandBuffer & postSceneCommandBuffer ()
 Borrow the open present command buffer for post-scene recording.
 
vk::DescriptorSetLayout getTexSetLayout () const
 Returns the tex set layout.
 
vk::DescriptorPool getDescriptorPool () const
 Returns the descriptor pool.
 
const vkb::BuiltRenderPass & getOffscreenRenderPass (bool hdr=false) const
 Returns the offscreen render pass.
 
const vkb::BuiltRenderPass & getOffscreen3DRenderPass (bool hdr=false)
 Returns the offscreen 3 d render pass.
 
vk::Format getDepthFormat () const
 Returns the depth format.
 
vk::RenderPass getSwapchainRenderPass () const
 Returns the swapchain render pass.
 
vk::RenderPass getUiMsaaRenderPass () const
 Returns the ui msaa render pass.
 
vk::SampleCountFlagBits getUiMsaaSamples () const
 Sample count the UI MSAA pass runs with (matches getUiMsaaRenderPass).
 
void ensureUiColorResources ()
 Create the UI MSAA render pass (once) and its color targets for ImGui init.
 
void drawUiTextureRects (void *commandBuffer, const std::vector< UiTextureDraw > &draws, std::size_t bufferOffset=0)
 Composite queued engine textures into the currently open UI render pass.
 
vkb::Instance & getInstance ()
 Returns the instance.
 
vkb::Swapchain & getSwapchain ()
 Returns the swapchain.
 
void * getSdlWindow () const
 Returns the sdl window.
 
uint32_t getSwapchainImageCount () const
 Returns the swapchain image count.
 
- Public 成员函数 继承自 eve::graphics::Graphics
 Module_REG (Graphics)
 
 Graphics ()
 Graphics.
 
 ~Graphics () override
 Graphics.
 
virtual void reset ()
 Resets the current color, background color, line style, and so forth.
 
virtual void clearScreen ()
 Script-friendly wrappers (r,g,b[,a] floats — no Color type in Squirrel).
 
virtual void setBackgroundColorRGBA (float r, float g, float b, float a=1.f)
 Sets the background color rgba.
 
virtual void drawSolidRectRGBA (float x, float y, float w, float h, float r, float g, float b, float a=1.f)
 Draws solid rect rgba.
 
virtual void drawTexturedRectRGBA (Texture *texture, float x, float y, float w, float h, float r, float g, float b, float a=1.f)
 Draws textured rect rgba.
 
virtual void drawTexturedRectRotatedRGBA (Texture *texture, float cx, float cy, float w, float h, float degrees, float r, float g, float b, float a=1.f)
 绕矩形中心旋转 degrees 度(顺时针,屏幕 Y 向下)的贴图绘制。
 
virtual void drawSolidRect (float x, float y, float w, float h, float r, float g, float b, float a=1.f)
 RGBA-float overload matching the script-facing drawSolidRect name.
 
virtual void drawTexturedRect (Texture *texture, float x, float y, float w, float h, float r, float g, float b, float a=1.f)
 RGBA-float overload matching the script-facing drawTexturedRect name.
 
void renderSprites ()
 Draw all live Sprite2D entities into the current frame without presenting.
 
Renderable2D * newSprite2D ()
 Create a script-facing Sprite2D ECS entity. Call destroy() when done.
 
Texture * newTextureFromImageData (image::ImageData *data, bool repeatU=false, bool repeatV=false)
 Creates a texture from image data. @ownership Caller deletes unless documented otherwise.
 
Texture * newTextureFromImageData (image::ImageData *data, const TextureCreateInfo &info)
 Upload RGBA8 ImageData with mipmaps / filter / anisotropy options.
 
eve::Result< void > updateTextureFromImageData (Texture *texture, image::ImageData *data)
 Upload the current RGBA8 pixels of ImageData into an existing texture in place.
 
Texture * newTextureWithSampler (image::ImageData *data, bool repeatU, bool repeatV, bool generateMipmaps, float maxAnisotropy, const std::string &filter, const std::string &mipmap, float lodBias=0.f)
 Script-friendly texture create: filter = "linear"|"nearest", mipmap = "none"|"linear"|"nearest". generateMipmaps builds a full mip chain; maxAnisotropy > 1 enables anisotropic filtering.
 
virtual void setTextureSampler (Texture *texture, const std::string &filter, const std::string &mipmap, float maxAnisotropy, float lodBias)
 Update sampler state without re-uploading pixels (filter / mip / aniso / LOD bias). Script-facing name is setTextureSampler (see Graphics::expose); this string overload keeps the C++ name identical to the script API.
 
std::weak_ptr< const void > resourceLifetime () const
 Observe this provider's resource lifetime without extending it.
 
Result< eve::Subscription > onResourcesRetiring (std::function< void()> callback) const
 Register cleanup before this provider destroys its GPU device/resources.
 
virtual bool supportsGBufferPost () const
 Whether gbuffer-based post-process shaders (AO, GI) can be created on this backend. Backends may use different shader source languages while preserving the same render-control contract.
 
virtual bool gpuDrivenVgAttachToMesh (Mesh *mesh, std::uint32_t vgAssetId)
 Attach an uploaded VG asset to a mesh (routes it to the VG path).
 
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; returns false for unknown assets.
 
int getWidth () const
 Returns the width.
 
int getHeight () const
 Returns the height.
 
int getPixelWidth () const
 Returns the pixel width.
 
int getPixelHeight () const
 Returns the pixel height.
 
double getCurrentDPIScale () const
 Returns the current dpi scale.
 
double getScreenDPIScale () const
 Returns the screen dpi scale.
 
std::shared_ptr< PrimitiveScene > getPrimitiveScene () const noexcept
 Returns the authoritative persistent spatial-primitive scene.
 
Texture * newTextureFromFileRepeated (const std::string &filename, bool repeatU, bool repeatV)
 Creates a texture from file repeated. @ownership Caller deletes unless documented otherwise.
 
void ensureFileTexturesReady ()
 Finish CPU decode and GPU upload for outstanding newTextureFromFile results. @thread Game/render thread that owns the device.
 
Quad * newQuad (int x, int y, int w, int h)
 Pixel-space atlas rect. Caller owns Quad* (not tracked by Graphics).
 
Mesh * newMeshCube (float size=1.f)
 Procedural cube (edge length size, centered at origin, outward CCW for RH Y-up), with per-face normals and a full 0..1 UV per face. Owned by Graphics.
 
virtual void render3D ()
 Run RenderSystem3D (begin3DFrame + draw visible Renderable3D).
 
virtual void renderScene3DToCanvas (Canvas *canvas, Camera3D *camera)
 Preview-quality 3D pass into an offscreen Canvas (editor viewport): renders visible Renderable3D with camera into canvas, whose texture can then be shown inside a UI Viewport widget. See RenderSystem3D::renderToCanvas.
 
virtual void setDirectionalLight (float dx, float dy, float dz, float r=1.f, float g=1.f, float b=1.f)
 Sets the directional light.
 
virtual void drawScene3DRGBA (float x, float y, float w, float h, float r=1.f, float g=1.f, float b=1.f, float a=1.f)
 Composite this frame's 3D scene color into a rect (screen or active Canvas). Call after render3D(); order vs drawSolidRect / drawTexturedRect is preserved. If never called, present() still blits the 3D scene fullscreen under 2D. RGB is blitted opaque (scene A is linear depth, not transparency).
 
void drawScene3D (float x, float y, float w, float h)
 Script-friendly 4-arg form (simplesquirrel does not apply C++ defaults).
 
virtual void drawCanvasRGBA (Canvas *canvas, float x, float y, float w, float h, float r=1.f, float g=1.f, float b=1.f, float a=1.f)
 Draw a Canvas color buffer as a textured rect (same batch order as other 2D).
 
void drawCanvas (Canvas *canvas, float x, float y, float w, float h)
 Draws a Canvas with opaque white tint (script-friendly defaults).
 
Material * newMaterial ()
 Create a Material asset (shading model + textures + PBR knobs). Caller owns Material*; not tracked by Graphics.
 
RenderControl * getRenderControl ()
 Shared compilable 3D render control (features → pass list + GBuffer). Owned by Graphics; valid for the module lifetime.
 
virtual image::ImageData * renderEntityIdMask (const std::vector< EntityIdDraw > &draws, const glm::mat4 &viewProj, int w, int h)
 Renders entity id mask.
 
virtual DisplayOutputMode getDisplayOutputMode () const
 Return the requested present preference.
 
virtual float getDisplayPaperWhiteNits () const
 Paper-white luminance in nits for HDR present encoding.
 
virtual float getDisplayPeakNits () const
 Peak luminance in nits for HDR present encoding.
 
virtual DisplayColorSpace getActiveDisplayColorSpace () const
 Color space of the live swapchain after the last rebuild.
 
virtual bool isDisplayHdrActive () const
 True when the live swapchain is scRGB or HDR10.
 
bool consumeFrameHad3D ()
 True after begin3DFrame until present completes.
 
bool had3DThisFrame () const
 Had 3 d this frame.
 
Color getBackgroundColor () const
 Returns the background color.
 
void setBackgroundColor (const Color &c)
 Sets the background color.
 
bool isScreenReadbackEnabled () const
 True when screen readback enabled.
 
bool saveFramePng (const std::string &path)
 Save the last presented frame to a PNG at path. Enables screen readback if needed. Returns false if no presented frame is available or encoding fails.
 
virtual bool beginFrameReadback (const std::string &path)
 Queue an asynchronous readback of the current frame to a PNG file.
 
virtual int frameReadbackStatus () const
 Async readback state: 0=idle, 1=pending, 2=done, 3=failed.
 
bool isVSync () const
 True when v sync.
 
void setVSyncCount (int count) override
 Sets the v sync count.
 
int getVSyncCount () const noexcept override
 Returns the v sync count.
 
void setActive (bool active) override
 Pause/resume presenting (Android background / foreground).
 
bool isActive () const
 True when active.
 
void clearPresentOverlay ()
 Drop the present overlay callback (window gone; re-register on UI init).
 
void addWindowDestroyedCallback (WindowDestroyedCallback cb, void *userdata)
 Adds window destroyed callback.
 
void setPresentOverlay (PresentOverlayFn fn, void *userdata)
 Sets the present overlay.
 
PresentOverlayFn getPresentOverlay () const
 Returns the present overlay.
 
void * getPresentOverlayUser () const
 Returns the present overlay user.
 
Font * newFont (font::FontData *data, std::string charset=Font::defaultCharset())
 Build a GPU font (glyph atlas texture) from decoded font data. Rasterizes charset (UTF-8, default: printable ASCII) up front; Codepoints outside it still advance in drawText() but aren't drawn. Caller owns Font* (not tracked by Graphics — unlike newTexture / newMesh / newShader handles, which Graphics owns).
 
virtual void setFont (Font *font)
 Optional shared font used by legacy consumers; nullptr = none set.
 
Font * getFont () const
 Returns the font.
 
virtual void print (const std::string &text, float x, float y, const Color &color=Color(1.f, 1.f, 1.f, 1.f), float scale=1.f)
 Draw UTF-8 text with the font selected by setFont().
 
virtual void drawText (Font *font, const std::string &text, float x, float y, const Color &color=Color(1.f, 1.f, 1.f, 1.f), float scale=1.f)
 Draw UTF-8 text with an explicitly supplied GPU font.
 
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.
 
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.
 
virtual void setShader (Shader *shader)
 Sets the shader.
 
virtual void setShader ()
 Sets the shader.
 
Shader * getShader () const
 Returns the shader.
 
Shader * newShaderFromSpvFile (const std::string &fragPath)
 Creates a shader from spv file. @ownership Caller deletes unless documented otherwise.
 
Shader * newShader (const std::string &fragGlsl)
 Creates a shader. @ownership Caller deletes unless documented otherwise.
 
Shader * newMeshShaderVF (const std::string &vertGlsl, const std::string &fragGlsl)
 Creates a Mesh3D shader from separate vertex and fragment GLSL sources.
 
Shader * newMeshShader (const std::string &fragGlsl)
 Creates a mesh shader. @ownership Caller deletes unless documented otherwise.
 
Shader * newHairShader ()
 Built-in hair shader with default anisotropic parameters.
 
Mesh * newHairCardMesh (float width=0.12f, float height=0.45f)
 Procedural upright hair/fur card mesh (root at origin, height +Y, face +Z). @ownership Owned by Graphics.
 
Material * newHairCardMaterial (Texture *albedo=nullptr)
 Material preconfigured for hair cards (transparent, double-sided, hair shader). @ownership Caller owns the Material*; shader is owned by Graphics.
 
Shader * newGrassShader ()
 t3ssel8r-style grass billboard shader (alpha test + shadow two-tone). Owned by Graphics. See grass:: / GrassField.
 
Shader * newTreeWindShader ()
 Create a backend-native tree wind shader using the default Mesh3D PBR fragment stage.
 
GrassField * newGrassField ()
 Dense + sparse stylized grass field. Caller owns GrassField*; its Mesh / Shader / Texture are owned by Graphics.
 
hair::GroomInstance * newGroomInstance ()
 High-quality groom/hair instance (UE GroomComponent analogue). See graphics/hair/ and docs/dev/毛发Groom子系统设计.md. @ownership Caller owns the returned GroomInstance*; its Mesh / Shader / Texture remain owned by Graphics. @lifetime Returned instance is valid until the caller deletes it; Graphics must outlive draws that use its GPU resources.
 
Waterfall * newWaterfall ()
 Flowing waterfall (falling water sheet) with sky reflection, downward velocity streaks and animated foam at the top lip and bottom splash pool. Caller owns Waterfall*; its Mesh / Shader are owned by Graphics.
 
Water * newWater ()
 Dynamic water surface (sky reflection + animated edge waves + middle drop ripples). Caller owns Water*; its Mesh / Shader are owned by Graphics.
 
Result< void > configureFoliageWind (Material *material, float directionX, float directionZ, float strength, float bending, float bendingSpeed, float branch, float branchSpeed, float flutter, float flutterSpeed, float fadeDistance, float bendFactor)
 Apply a source-derived foliage wind profile using graphics-owned shared field textures. The first successful call uploads one 1x1x9 neutral motion array and one deterministic 4x4 noise texture; subsequent calls reuse them. Existing PBR textures and translucency remain unchanged.
 
ReflectionProbeCapture * newReflectionProbeCapture ()
 Create an incremental six-face HDR reflection-probe capture. @ownership The caller owns the returned capture object.
 
ReflectionProbeRegistry * newReflectionProbeRegistry ()
 Create a scene-level automatic reflection-probe selector. @ownership The caller owns the returned registry.
 
void setCanvas ()
 Sets the canvas.
 
Volumetric * newVolumetric ()
 Volumetric light + fog (screenspace / raymarch / fog). Caller owns Volumetric*; its Shaders are owned by Graphics.
 
DepthOfField * newDepthOfField ()
 Create a caller-owned depth-aware depth-of-field compositor.
 
AmbientOcclusion * newAmbientOcclusion ()
 Screen-space ambient occlusion (ssao / hbao / gtao). Caller owns AmbientOcclusion*; its Shaders are owned by Graphics.
 
Outline * newOutline ()
 Screen-space model outline (t3ssel8r-style) from GBuffer depth + normal. Caller owns Outline*; its Shader is owned by Graphics.
 
AlphaMask * newAlphaMask ()
 Create a script-owned reusable two-texture alpha-mask compositor.
 
MapFog * newMapFog ()
 Create a script-owned SLG / large-map war-fog overlay (dual cloud + mask). @lifetime Caller owns the MapFog*; its Shader is owned by Graphics.
 
GlobalIllumination * newGlobalIllumination ()
 Screen-space single-bounce GI. Caller owns GlobalIllumination*; its Shaders are owned by Graphics.
 
ScreenSpaceReflection * newScreenSpaceReflection ()
 Screen-space reflections (ray-marched over scene color + hw depth). Caller owns ScreenSpaceReflection*; its Shader is owned by Graphics.
 
AmbientOcclusion * pipelineAmbientOcclusion ()
 Pipeline-owned AO / GI / AA used by RenderSystem3D when features "ao" / "gi" / "aa" are enabled. Created on first use; Graphics owns them.
 
GlobalIllumination * pipelineGlobalIllumination ()
 Pipeline global illumination.
 
ScreenSpaceReflection * pipelineScreenSpaceReflection ()
 Pipeline screen space reflection.
 
AntiAliasing * pipelineAntiAliasing ()
 Pipeline anti aliasing.
 
Bloom * pipelineBloom ()
 Pipeline-owned linear-HDR bloom pyramid, created on first use. @lifetime Returned effect remains valid until Graphics shutdown.
 
DepthOfField * pipelineDepthOfField ()
 Pipeline-owned Gaussian depth-of-field, created on first use. @lifetime Returned effect remains valid until Graphics shutdown.
 
Exposure * pipelineExposure ()
 Pipeline-owned GPU exposure metering and eye adaptation. @lifetime Returned effect remains valid until Graphics shutdown.
 
DepthPyramid * pipelineDepthPyramid ()
 Pipeline-owned shared min/max depth hierarchy for screen-space effects. @lifetime Returned effect remains valid until Graphics shutdown.
 
Texture * prepareFinalSceneTexture (Texture *scene, Texture *motion=nullptr)
 Build the shared linear-HDR AA, DOF, bloom, and exposure result for final ACES. @lifetime Returned texture is Graphics-owned and valid for the current target allocation.
 
Canvas * pipelineReflectionComposite (int width, int height)
 Return a reusable HDR target for composing screen-space lighting. @lifetime Returned canvas is Graphics-owned and valid for the current target allocation.
 
void setFinalSceneTexture (Texture *texture)
 Override the HDR source consumed by the next backend scene resolve.
 
Texture * takeFinalSceneTexture ()
 Consume and clear the per-frame HDR scene resolve override. @lifetime Returned texture is borrowed and retains its original owner's lifetime.
 
Outline * pipelineOutline ()
 Pipeline-owned Outline used by RenderSystem3D when the "outline" feature is on.
 
AntiAliasing * newAntiAliasing ()
 Classic image-space AA (FXAA / SMAA / SSAA / NFAA). Caller owns AntiAliasing*; its Shaders are owned by Graphics.
 
virtual void draw (Drawable *drawable, const glm::mat4 &m)
 Draws .
 
virtual void drawOcclusion (Drawable *drawable, const glm::mat4 &m)
 Volumetric occlusion helpers (shadow-pass analogue for light shafts). drawOcclusion skips drawables with castOcclusion=false.
 
virtual void drawOcclusionSolid (float x, float y, float w, float h)
 Draws occlusion solid.
 
virtual void drawOcclusionTexture (Texture *texture, float x, float y, float w, float h)
 Draws occlusion texture.
 
void points (const std::vector< glm::vec2 > &positions, const std::vector< Color > &colors)
 Draws a series of points at the specified positions.
 
void polyline (const glm::mat4 *vertices, size_t count)
 Draws a series of lines connecting the given vertices.
 
void rectangle (std::string mode, float x, float y, float w, float h)
 Draws a rectangle.
 
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.
 
void rectangle (std::string mode, float x, float y, float w, float h, float rx, float ry)
 Rectangle.
 
void circle (std::string mode, float x, float y, float radius, int points)
 Draws a circle using the specified arguments.
 
void circle (std::string mode, float x, float y, float radius)
 Circle.
 
void ellipse (std::string mode, float x, float y, float a, float b, int points)
 Draws an ellipse using the specified arguments.
 
void ellipse (std::string mode, float x, float y, float a, float b)
 Ellipse.
 
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.
 
void arc (std::string mode, std::string arcmode, float x, float y, float radius, float angle1, float angle2)
 Arc.
 
void polygon (std::string mode, const std::vector< glm::vec2 > &vertices, bool skipLastFilledVertex=true)
 Draws a polygon with an arbitrary number of vertices.
 
void push (bool all)
 Pushes .
 
void pop ()
 Pops .
 
const glm::mat4 & getTransform () const
 Returns the transform.
 
const glm::mat4 & getProjection () const
 Returns the projection.
 
void rotate (float r)
 Rotate.
 
void scale (float x, float y=1.0f)
 Scale.
 
void translate (float x, float y)
 Translate.
 
void origin ()
 Origin.
 
glm::vec2 transformPoint (glm::vec2 point)
 Transform point.
 
glm::vec2 inverseTransformPoint (glm::vec2 point)
 Inverse transform point.
 
- Public 成员函数 继承自 eve::Module
virtual ~Module ()
 Module.
 
virtual std::string getName () const =0
 Returns the name.
 
- Public 成员函数 继承自 eve::graphics::Canvas
 Canvas ()
 Constructs a Canvas.
 
 ~Canvas () override
 Releases Canvas resources.
 
virtual image::ImageData * newHDRImageData ()
 Copy an HDR Canvas as linear RGBA16F without tone mapping.
 
- Public 成员函数 继承自 eve::graphics::Drawable
virtual ~Drawable ()
 Releases Drawable resources.
 
bool getCastOcclusion () const
 When false, skipped by Graphics::drawOcclusion / volumetric occluder passes.
 
void setCastOcclusion (bool cast)
 Sets the cast occlusion.
 
virtual void drawOcclusion (Graphics *gfx, const glm::mat4 &matrix) const
 Draw as an opaque black silhouette for volumetric occlusion maps (screen-space god rays / light shafts). Default is a no-op; Texture / Mesh override with 2D black rects (alpha preserved for textures).
 
- Public 成员函数 继承自 eve::IWindowSurfaceHost
virtual ~IWindowSurfaceHost ()=default
 I window surface host.
 
- Public 成员函数 继承自 eve::graphics::IGraphics2D
virtual ~IGraphics2D ()=default
 Releases IGraphics2D resources.
 
- Public 成员函数 继承自 eve::graphics::IGraphics3D
virtual ~IGraphics3D ()=default
 Releases IGraphics3D resources.
 
- Public 成员函数 继承自 eve::graphics::ICanvasFactory
virtual ~ICanvasFactory ()=default
 Releases ICanvasFactory resources.
 
- Public 成员函数 继承自 eve::graphics::ICanvasTarget
virtual ~ICanvasTarget ()=default
 Releases ICanvasTarget resources.
 
- Public 成员函数 继承自 eve::graphics::IResourceFactory
virtual ~IResourceFactory ()=default
 Releases IResourceFactory resources.
 
- Public 成员函数 继承自 eve::graphics::ISolidRectRenderer
virtual ~ISolidRectRenderer ()=default
 Releases ISolidRectRenderer resources.
 
- Public 成员函数 继承自 eve::graphics::IPostFX
virtual ~IPostFX ()=default
 Releases IPostFX resources.
 
- Public 成员函数 继承自 eve::IFramePresentation
virtual ~IFramePresentation ()=default
 Releases IFramePresentation resources.
 
- Public 成员函数 继承自 eve::service::IGpuTimer
virtual ~IGpuTimer ()=default
 Releases IGpuTimer resources.
 

友元

class OffscreenCanvas
 

额外继承的成员函数

- Public 类型 继承自 eve::graphics::Graphics
enum class  SceneColorDistortionStatus { Queued , Unavailable }
 Refract the resolved 3D scene color through a displacement texture. 更多...
 
enum class  Mesh3DSceneColorCaptureStatus {
  ExplicitOverride , Scheduled , Captured , HistoryReuse ,
  Unavailable
}
 Observable result of requesting a same-frame mesh SceneColor snapshot. 更多...
 
enum class  SceneToneMapping { None , Aces , Filmic }
 Final display mapping; None preserves linear color, Aces uses the fitted curve, and Filmic uses Rec.709/AP1. 更多...
 
enum class  DisplayOutputMode { Sdr , Auto , Hdr10 , ScRgb }
 Requested swapchain present preference. 更多...
 
enum class  DisplayColorSpace { Sdr , ScRgb , Hdr10 }
 Color space actually selected for the live swapchain. 更多...
 
using WindowDestroyedCallback = void(*)(void *userdata)
 Register a callback invoked when the native window is destroyed. Used by the UI backend to tear down its ImGui context; callbacks are cleared (and invoked) on onNativeWindowDestroyed().
 
using PresentOverlayFn = bool(*)(void *userdata, void *commandBuffer)
 Optional overlay drawn inside the swapchain render pass (before end). Used by declarative UI (ImGui). commandBuffer is a VkCommandBuffer as void*. Called with commandBuffer == nullptr as a probe: return true only when this frame has overlay draw data, so the backend can skip an empty UI pass.
 
- 静态 Public 属性 继承自 eve::IWindowSurfaceHost
static constexpr const char * capabilityName = "IWindowSurfaceHost"
 
- 静态 Public 属性 继承自 eve::IFramePresentation
static constexpr const char * capabilityName = "eve.frame-presentation"
 
- 静态 Public 属性 继承自 eve::service::IGpuTimer
static constexpr const char * capabilityName = "IGpuTimer"
 
- Protected 成员函数 继承自 eve::graphics::Graphics
void requestFileImageDecode (const std::string &key)
 Request file image decode.
 
bool fileTextureSourceExists (const std::string &filename) const
 File texture source exists.
 
void dropDeferredFileTexture (Texture *texture)
 Drop deferred file texture.
 
Shader * prepareSceneColorResolveShader (Texture *scene)
 FXAA resolve shader that writes opaque RGB (ignores scene-color depth alpha).
 
void retireResourceLifetime () const
 Retire resource lifetime.
 
- Protected 属性 继承自 eve::graphics::Graphics
std::vector< DeferredFileTexture > deferredFileTextures_
 
bool realizingFileTextures_ = false
 
int width = 0
 
int height = 0
 
int pixelWidth = 0
 
int pixelHeight = 0
 
Color backgroundColor {0.1f, 0.1f, 0.12f, 1.0f}
 
bool frameHad3D = false
 
bool recordingEngine3D_ = false
 True while RenderSystem3D is submitting (AO / engine overlays).
 
bool screenReadbackEnabled = false
 
bool vsyncEnabled = true
 
int presentationVSyncCount_ =1
 
DisplayOutputMode displayOutputMode_ = DisplayOutputMode::Sdr
 
DisplayColorSpace activeDisplayColorSpace_ = DisplayColorSpace::Sdr
 
float displayPaperWhiteNits_ = 200.f
 
float displayPeakNits_ = 1000.f
 
bool graphicsActive = true
 
int msaaSamples = 4
 
PresentOverlayFn presentOverlayFn_ = nullptr
 
void * presentOverlayUser_ = nullptr
 
std::vector< std::pair< WindowDestroyedCallback, void * > > windowDestroyedCallbacks_
 
Shader * currentShader = nullptr
 
Font * currentFont = nullptr
 
std::unique_ptr< RenderControl > renderControl_
 
std::shared_ptr< PrimitiveScene > primitiveScene_
 
std::unique_ptr< AmbientOcclusion > pipelineAO_
 
std::unique_ptr< GlobalIllumination > pipelineGI_
 
std::unique_ptr< ScreenSpaceReflection > pipelineSSR_
 
std::unique_ptr< AntiAliasing > pipelineAA_
 
std::unique_ptr< Bloom > pipelineBloom_
 
std::unique_ptr< DepthOfField > pipelineDof_
 
std::unique_ptr< Exposure > pipelineExposure_
 
bool sceneDepthOfFieldEnabled_ = false
 
float sceneDepthOfFieldFocusDistance_ = 10.f
 
float sceneDepthOfFieldFocusRange_ = 5.f
 
float sceneDepthOfFieldMaximumBlurPixels_ = 8.f
 
float sceneDepthOfFieldNearPlane_ = 0.1f
 
float sceneDepthOfFieldFarPlane_ = 100.f
 
std::unique_ptr< DepthPyramid > pipelineDepthPyramid_
 
Canvas * spatialAAResolve_ = nullptr
 
int spatialAAResolveWidth_ = 0
 
int spatialAAResolveHeight_ = 0
 
Canvas * reflectionComposite_ = nullptr
 
int reflectionCompositeWidth_ = 0
 
int reflectionCompositeHeight_ = 0
 
Texture * finalSceneTexture_ = nullptr
 
Texture * foliageWindMotionTexture_ = nullptr
 
Texture * foliageWindNoiseTexture_ = nullptr
 
std::unique_ptr< Outline > pipelineOutline_
 

详细描述

EVENGINE_API_BACKENDS public API.

在文件 Graphics.h 第 342 行定义.

构造及析构函数说明

◆ Graphics()

eve::graphics::vulkan::Graphics::Graphics ( )
default

Starts asynchronous VkInstance creation (overlaps later window init).

◆ ~Graphics()

成员函数说明

◆ bakeMeshMorph()

bool eve::graphics::vulkan::Graphics::bakeMeshMorph ( Mesh *  mesh)
overridevirtual

If mesh morph weights are dirty, bake blended positions and upload to the GPU VBO. Returns true when an upload happened. No-op when no morph data / not dirty / null.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 306 行定义.

引用了 mesh, eve::graphics::vulkan::MeshVertex::pos, pos, source, uv, v , 以及 verts.

◆ begin3DFrame()

◆ begin3DFrameToCanvas()

void eve::graphics::vulkan::Graphics::begin3DFrameToCanvas ( Canvas *  canvas)
overridevirtual

◆ beginDecalPass()

void eve::graphics::vulkan::Graphics::beginDecalPass ( int  width,
int  height 
)
overridevirtual

Begins decal pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 849 行定义.

引用了 h , 以及 w.

◆ beginGBufferPass()

void eve::graphics::vulkan::Graphics::beginGBufferPass ( int  width,
int  height 
)
overridevirtual

Begins g buffer pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 750 行定义.

引用了 h , 以及 w.

◆ beginShadowPass()

void eve::graphics::vulkan::Graphics::beginShadowPass ( int  cascadeIndex)
overridevirtual

Begins shadow pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 693 行定义.

引用了 eve::graphics::ShadowConfig::kTotalLayers.

◆ bindlessSlot2D()

uint32_t eve::graphics::vulkan::Graphics::bindlessSlot2D ( const GpuTexture *  tex) const
inline

◆ bindlessSlotCube()

uint32_t eve::graphics::vulkan::Graphics::bindlessSlotCube ( const GpuTexture *  tex) const
inline

◆ canRecordPostSceneGpuWork()

bool eve::graphics::vulkan::Graphics::canRecordPostSceneGpuWork ( ) const
inline

True when the present command buffer is open and the scene-color pass has ended, so post-scene GPU work (e.g. ray tracing) can record into the same frame stream.

在文件 Graphics.h 第 1022 行定义.

◆ canSubmitGpuParticles()

bool eve::graphics::vulkan::Graphics::canSubmitGpuParticles ( ) const
overridevirtual

Can submit gpu particles.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 172 行定义.

引用了 supportsGpuParticles().

被这些函数引用 drawGpuParticleEmitter() , 以及 updateGpuParticleEmitter().

◆ captureMesh3DSceneColor()

Graphics::Mesh3DSceneColorCaptureStatus eve::graphics::vulkan::Graphics::captureMesh3DSceneColor ( )
overridevirtual

◆ clear()

void eve::graphics::vulkan::Graphics::clear ( std::optional< Color >  color,
std::optional< int >  stencil,
std::optional< double >  depth 
)
overridevirtual

◆ configureMeshShaderRaster()

eve::Result< void > eve::graphics::vulkan::Graphics::configureMeshShaderRaster ( Shader &  shader,
const MeshShaderRasterState &  state 
)
overridevirtual

Configure mesh shader raster.

重载 eve::graphics::Graphics .

在文件 GraphicsShaderSurface.cpp 第 11 行定义.

引用了 shader, state, valid , 以及 eve::graphics::validateMeshShaderRasterState().

◆ configureMeshShaderSurface()

eve::Result< void > eve::graphics::vulkan::Graphics::configureMeshShaderSurface ( Shader &  shader,
BlendMode  blend,
bool  depthWrite,
bool  doubleSided 
)
overridevirtual

Configure mesh shader surface.

重载 eve::graphics::Graphics .

在文件 GraphicsShaderSurface.cpp 第 7 行定义.

引用了 blend, doubleSided , 以及 shader.

◆ copyHDRCanvasesToCubemap()

bool eve::graphics::vulkan::Graphics::copyHDRCanvasesToCubemap ( Canvas *const *  sources,
int  faceCount,
Texture *  cubemap 
)
overridevirtual

Copies hdr canvases to cubemap.

重载 eve::graphics::Graphics .

在文件 GraphicsTexture.cpp 第 519 行定义.

引用了 device, eve::graphics::Texture::gpuHandle , 以及 target.

◆ copyHDRCanvasToCubemapFace()

bool eve::graphics::vulkan::Graphics::copyHDRCanvasToCubemapFace ( Canvas *  source,
Texture *  cubemap,
int  face 
)
overridevirtual

Copies hdr canvas to cubemap face.

@compatibility Implements the Graphics boolean submission facade.

重载 eve::graphics::Graphics .

在文件 GraphicsTexture.cpp 第 452 行定义.

引用了 device, eve::graphics::Texture::gpuHandle, source , 以及 target.

◆ createGpuParticleEmitter()

GpuParticleHandle eve::graphics::vulkan::Graphics::createGpuParticleEmitter ( std::uint32_t  capacity)
overridevirtual

Creates gpu particle emitter.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 178 行定义.

引用了 capacity, handle, eve::graphics::kInvalidGpuParticleHandle, resource , 以及 supportsGpuParticles().

◆ currentFrameArena()

FrameArena & eve::graphics::vulkan::Graphics::currentFrameArena ( )

Per-frame arena for the current swapchain frame slot.

在文件 GraphicsGpuDriven.cpp 第 167 行定义.

被这些函数引用 begin3DFrame(), gpuDrivenCullBegin(), gpuDrivenCullEmit(), gpuDrivenSubmitOpaque() , 以及 gpuDrivenSubmitResident().

◆ debugBindlessIndex()

uint32_t eve::graphics::vulkan::Graphics::debugBindlessIndex ( Texture *  tex) const

Test/debug helpers (valid when the GPU-driven path is live).

在文件 GraphicsGpuDriven.cpp 第 1860 行定义.

引用了 eve::graphics::Texture::gpuHandle , 以及 eve::graphics::vulkan::kInvalidBindlessSlot.

◆ debugGpuDrivenCulledDrawCount()

uint32_t eve::graphics::vulkan::Graphics::debugGpuDrivenCulledDrawCount ( ) const

Debug gpu driven culled draw count.

在文件 GraphicsGpuDriven.cpp 第 1847 行定义.

引用了 b, count, instanceCount, eve::graphics::vulkan::kMaxGpuDrivenBuckets, n , 以及 u.

◆ debugGpuDrivenVgVisibleCount()

uint32_t eve::graphics::vulkan::Graphics::debugGpuDrivenVgVisibleCount ( ) const

Debug readback: visible VG clusters from the last cull.

在文件 GraphicsGpuDriven.cpp 第 739 行定义.

引用了 count.

◆ debugGpuDrivenVisibleCount()

uint32_t eve::graphics::vulkan::Graphics::debugGpuDrivenVisibleCount ( ) const

Debug readback: visible instances / non-empty buckets from the last cull.

在文件 GraphicsGpuDriven.cpp 第 1834 行定义.

引用了 count, eve::graphics::vulkan::kMaxGpuDrivenInstances, n , 以及 u.

◆ debugLastGpuDrivenDrawCount()

uint32_t eve::graphics::vulkan::Graphics::debugLastGpuDrivenDrawCount ( ) const
inline

Indirect draws emitted by the last successful GPU-driven submit.

在文件 Graphics.h 第 503 行定义.

◆ debugMeshRecordIndex()

uint32_t eve::graphics::vulkan::Graphics::debugMeshRecordIndex ( Mesh *  mesh) const

Debug mesh record index.

在文件 GraphicsGpuDriven.cpp 第 1865 行定义.

引用了 eve::graphics::vulkan::kInvalidBindlessSlot , 以及 mesh.

◆ describeMesh()

std::optional< eve::graphics::MeshBackendDescriptor > eve::graphics::vulkan::Graphics::describeMesh ( Mesh *  mesh) const
overridevirtual

Return layout facts from the owned Vulkan mesh upload.

重载 eve::graphics::Graphics .

在文件 GraphicsMesh.cpp 第 294 行定义.

引用了 mesh, owned , 以及 eve::graphics::MeshBackendDescriptor::vertexCount.

◆ draw() [1/2]

void eve::graphics::vulkan::Graphics::draw ( Canvas *  C,
const glm::mat4 &  matrix 
) const
overridevirtual

Draws .

实现了 eve::graphics::Canvas.

在文件 Graphics.cpp 第 1131 行定义.

◆ draw() [2/2]

void eve::graphics::vulkan::Graphics::draw ( eve::graphics::Graphics *  gfx,
const glm::mat4 &  matrix 
) const
overridevirtual

Draws .

重载 eve::graphics::Canvas .

在文件 Graphics.cpp 第 1130 行定义.

◆ drawDecal()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws decal.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 867 行定义.

引用了 albedo, d, model, normal, normalStrength , 以及 params.

◆ drawDeferredLighting()

◆ drawGpuParticleEmitter()

bool eve::graphics::vulkan::Graphics::drawGpuParticleEmitter ( GpuParticleHandle  handle,
const GpuParticleDraw &  draw 
)
overridevirtual

Draws gpu particle emitter.

@compatibility Implements the established GPU-particle boolean submission facade.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 229 行定义.

引用了 canSubmitGpuParticles(), draw, handle, index , 以及 eve::graphics::Graphics::recordingEngine3D_.

◆ drawMesh()

void eve::graphics::vulkan::Graphics::drawMesh ( Mesh *  mesh,
const glm::mat4 &  model,
Texture *  texture,
const Color &  tint 
)
overridevirtual

Draws mesh.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 625 行定义.

引用了 eve::graphics::Graphics::drawMeshShader(), mesh, model , 以及 tint.

◆ drawMeshGBuffer()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws mesh g buffer.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 761 行定义.

引用了 albedo, d, mesh, metallic, model, mvp, roughness, value , 以及 x.

◆ drawMeshGBufferAlpha()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws mesh g buffer alpha.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 791 行定义.

引用了 albedo, d, mesh, metallic, model, mvp, roughness, value , 以及 x.

◆ drawMeshShader()

void eve::graphics::vulkan::Graphics::drawMeshShader ( Mesh *  mesh,
const glm::mat4 &  model,
Texture *  texture,
const Color &  tint,
Shader *  shader 
)
overridevirtual

Draws mesh shader.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 629 行定义.

引用了 mesh, model, shader , 以及 tint.

◆ drawMeshShaderInstances()

Result< void > eve::graphics::vulkan::Graphics::drawMeshShaderInstances ( Mesh &  mesh,
Shader &  shader,
const glm::mat4 &  model,
const Color &  tint,
std::uint32_t  first,
std::uint32_t  count 
)
overridevirtual

Draws mesh shader instances.

重载 eve::graphics::Graphics .

◆ drawMeshShadow()

void eve::graphics::vulkan::Graphics::drawMeshShadow ( Mesh *  mesh,
const glm::mat4 &  lightMVP,
bool  doubleSided = true 
)
overridevirtual

Draws mesh shadow.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 703 行定义.

引用了 d, doubleSided , 以及 mesh.

◆ drawMeshShadowAlpha()

void eve::graphics::vulkan::Graphics::drawMeshShadowAlpha ( Mesh *  mesh,
const glm::mat4 &  lightMVP,
Texture *  albedo = nullptr,
bool  doubleSided = true,
float  lodWeight = 1.f,
bool  lodFadeReverse = false,
bool  lodDither = false 
)
overridevirtual

Draws mesh shadow alpha.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 715 行定义.

引用了 albedo, d, doubleSided, lodFadeReverse, lodWeight , 以及 mesh.

◆ drawPrimitiveCanvas()

void eve::graphics::vulkan::Graphics::drawPrimitiveCanvas ( const PrimitiveCanvas2D &  canvas)
overridevirtual

◆ drawPrimitiveScene()

◆ drawSceneColorDistortionUVRotated()

Graphics::SceneColorDistortionStatus eve::graphics::vulkan::Graphics::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 
)
overridevirtual

◆ drawSolidRect()

void eve::graphics::vulkan::Graphics::drawSolidRect ( float  x,
float  y,
float  w,
float  h,
const Color &  color,
BlendMode  blend = BlendMode::Alpha 
)
overridevirtual

Draws solid rect.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 651 行定义.

引用了 blend, color, h, w, x , 以及 y.

◆ drawSolidRectRotated()

void eve::graphics::vulkan::Graphics::drawSolidRectRotated ( float  cx,
float  cy,
float  w,
float  h,
float  degrees,
const Color &  color,
BlendMode  blend = BlendMode::Alpha 
)
overridevirtual

Draws solid rect rotated.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 694 行定义.

引用了 blend, color, cx, cy, degrees, h , 以及 w.

◆ drawTexturedRect()

void eve::graphics::vulkan::Graphics::drawTexturedRect ( Texture *  texture,
float  x,
float  y,
float  w,
float  h,
const Color &  color 
)
overridevirtual

Draws textured rect.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 748 行定义.

引用了 color, eve::graphics::Graphics::drawTexturedRectUV(), h, w, x , 以及 y.

◆ drawTexturedRectLitUV()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws textured rect lit uv.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 951 行定义.

引用了 albedo, blend, color, eve::graphics::Graphics::drawSolidRect(), h, normal, w, x , 以及 y.

◆ drawTexturedRectLitUVRotated()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws textured rect lit uv rotated.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 967 行定义.

引用了 albedo, blend, color, cx, cy, degrees, eve::graphics::Graphics::drawSolidRectRotated(), h, normal , 以及 w.

◆ drawTexturedRectShader()

void eve::graphics::vulkan::Graphics::drawTexturedRectShader ( Texture *  texture,
Shader *  shader,
float  x,
float  y,
float  w,
float  h,
const Color &  color 
)
overridevirtual

Draws textured rect shader.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 752 行定义.

引用了 color, eve::graphics::Graphics::drawTexturedRectShaderUV(), h, shader, w, x , 以及 y.

◆ drawTexturedRectShader4()

void eve::graphics::vulkan::Graphics::drawTexturedRectShader4 ( Texture *  color,
Texture *  depth,
Texture *  motion,
Texture *  extra,
Shader *  shader,
float  x,
float  y,
float  w,
float  h,
const Color &  tint 
)
overridevirtual

Draws textured rect shader 4.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 835 行定义.

引用了 color, depth, eve::graphics::Graphics::drawSolidRect(), h, eve::Opaque, shader, tint, w, x , 以及 y.

◆ drawTexturedRectShader5()

void eve::graphics::vulkan::Graphics::drawTexturedRectShader5 ( Texture *  color,
Texture *  depth,
Texture *  motion,
Texture *  extra,
Texture *  specular,
Shader *  shader,
float  x,
float  y,
float  w,
float  h,
const Color &  tint 
)
overridevirtual

Draws textured rect shader 5.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 854 行定义.

引用了 color, depth, eve::graphics::Graphics::drawSolidRect(), h, eve::Opaque, shader, tint, w, x , 以及 y.

◆ drawTexturedRectShaderDepth()

void eve::graphics::vulkan::Graphics::drawTexturedRectShaderDepth ( Texture *  color,
Texture *  depth,
Shader *  shader,
float  x,
float  y,
float  w,
float  h,
const Color &  tint 
)
overridevirtual

Draws textured rect shader depth.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 798 行定义.

引用了 eve::Alpha, color, depth, eve::graphics::Graphics::drawSolidRect(), eve::graphics::Graphics::drawTexturedRectShader(), h, shader, tint, w, x , 以及 y.

◆ drawTexturedRectShaderDepthMotion()

void eve::graphics::vulkan::Graphics::drawTexturedRectShaderDepthMotion ( Texture *  color,
Texture *  depth,
Texture *  motion,
Shader *  shader,
float  x,
float  y,
float  w,
float  h,
const Color &  tint 
)
overridevirtual

Draws textured rect shader depth motion.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 817 行定义.

引用了 color, depth, eve::graphics::Graphics::drawSolidRect(), h, eve::Opaque, shader, tint, w, x , 以及 y.

◆ drawTexturedRectShaderUV()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws textured rect shader uv.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 762 行定义.

引用了 blend, color, eve::graphics::Texture::depth, eve::graphics::Graphics::drawSolidRect(), h, shader, w, x , 以及 y.

◆ drawTexturedRectShaderUVRotated()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

Draws textured rect shader uv rotated.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 779 行定义.

引用了 blend, color, cx, cy, degrees, eve::graphics::Texture::depth, eve::graphics::Graphics::drawSolidRect(), h, shader , 以及 w.

◆ drawTexturedRectUV()

void eve::graphics::vulkan::Graphics::drawTexturedRectUV ( Texture *  texture,
float  x,
float  y,
float  w,
float  h,
float  u0,
float  v0,
float  u1,
float  v1,
const Color &  color 
)
overridevirtual

Draws textured rect uv.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 757 行定义.

引用了 color, eve::graphics::Graphics::currentShader, eve::graphics::Graphics::drawTexturedRectShaderUV(), h, w, x , 以及 y.

◆ drawUiTextureRects()

void eve::graphics::vulkan::Graphics::drawUiTextureRects ( void *  commandBuffer,
const std::vector< UiTextureDraw > &  draws,
std::size_t  bufferOffset = 0 
)

Composite queued engine textures into the currently open UI render pass.

参数
commandBufferNative Vulkan command buffer owned by the active UI pass.
drawsOrdered textured rectangles in framebuffer coordinates.
bufferOffsetFirst transient vertex-buffer slot; disjoint calls in the same frame must reserve non-overlapping ranges of draws.size() slots. @ownership Inputs are borrowed for this synchronous render-thread call only. @reentrancy Must not be called concurrently; invokes no user callbacks.

在文件 Graphics2D.cpp 第 894 行定义.

引用了 eve::graphics::Batcher::addTexturedRect(), eve::graphics::vulkan::GpuTexture::descriptorSet, device, draw, offset, eve::graphics::vulkan::TexturedVertex::pos, eve::graphics::Batcher::toNDC(), vertices , 以及 eve::graphics::Batcher::vertices().

◆ drawVoxelFaceInstances()

void eve::graphics::vulkan::Graphics::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 
)
overridevirtual

◆ end3DFrameToCanvas()

void eve::graphics::vulkan::Graphics::end3DFrameToCanvas ( )
overridevirtual

Ends 3 d frame to canvas.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 315 行定义.

引用了 eve::graphics::vulkan::OffscreenCanvas::colorImage().

◆ endDecalPass()

void eve::graphics::vulkan::Graphics::endDecalPass ( )
overridevirtual

Ends decal pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 898 行定义.

◆ endGBufferPass()

void eve::graphics::vulkan::Graphics::endGBufferPass ( )
overridevirtual

Ends g buffer pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 820 行定义.

引用了 eve::graphics::Graphics::getRenderControl().

◆ endShadowPass()

void eve::graphics::vulkan::Graphics::endShadowPass ( )
overridevirtual

Ends shadow pass.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 733 行定义.

◆ ensureUiColorResources()

void eve::graphics::vulkan::Graphics::ensureUiColorResources ( )
inline

Create the UI MSAA render pass (once) and its color targets for ImGui init.

Creates ui color resources.

在文件 Graphics.h 第 1049 行定义.

◆ filterHDRReflectionCubemap()

bool eve::graphics::vulkan::Graphics::filterHDRReflectionCubemap ( Texture *  cubemap,
int  sampleCount = 64 
)
overridevirtual

Filter hdr reflection cubemap.

@compatibility Implements the Graphics boolean submission facade.

重载 eve::graphics::Graphics .

在文件 GraphicsTexture.cpp 第 607 行定义.

引用了 bindings, device, eve::graphics::Texture::gpuHandle, index, info, layout, eve::graphics::Graphics::push(), roughness, size, target , 以及 u.

◆ getBackendName()

std::string eve::graphics::vulkan::Graphics::getBackendName ( ) const
overridevirtual

Returns the backend name.

实现了 eve::graphics::Graphics.

在文件 Graphics.cpp 第 292 行定义.

◆ getCanvas()

Canvas * eve::graphics::vulkan::Graphics::getCanvas ( ) const
overridevirtual

Returns the canvas.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 583 行定义.

◆ getDepthFormat()

vk::Format eve::graphics::vulkan::Graphics::getDepthFormat ( ) const
inline

Returns the depth format.

在文件 Graphics.h 第 1041 行定义.

被这些函数引用 eve::graphics::vulkan::OffscreenCanvas::ensure3D().

◆ getDescriptorPool()

vk::DescriptorPool eve::graphics::vulkan::Graphics::getDescriptorPool ( ) const
inline

Returns the descriptor pool.

在文件 Graphics.h 第 1031 行定义.

被这些函数引用 eve::graphics::vulkan::OffscreenCanvas::OffscreenCanvas().

◆ getDevice()

◆ getGpuParticleStats()

GpuParticleStats eve::graphics::vulkan::Graphics::getGpuParticleStats ( GpuParticleHandle  handle) const
overridevirtual

Returns the gpu particle stats.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 239 行定义.

引用了 found , 以及 handle.

◆ getInstance()

vkb::Instance & eve::graphics::vulkan::Graphics::getInstance ( )
inline

Returns the instance.

在文件 Graphics.h 第 1067 行定义.

◆ getLastOffscreen3DGpuDurationMs()

float eve::graphics::vulkan::Graphics::getLastOffscreen3DGpuDurationMs ( ) const
inlineoverridevirtual

Returns the last offscreen 3 d gpu duration ms.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 762 行定义.

◆ getMaxAnisotropy()

float eve::graphics::vulkan::Graphics::getMaxAnisotropy ( ) const
overridevirtual

Returns the max anisotropy.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 707 行定义.

◆ getMsaaSamples()

int eve::graphics::vulkan::Graphics::getMsaaSamples ( ) const
inlineoverridevirtual

Returns the msaa samples.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 408 行定义.

◆ getOffscreen3DRenderPass()

const vkb::BuiltRenderPass & eve::graphics::vulkan::Graphics::getOffscreen3DRenderPass ( bool  hdr = false)
inline

Returns the offscreen 3 d render pass.

在文件 Graphics.h 第 1037 行定义.

被这些函数引用 begin3DFrameToCanvas() , 以及 eve::graphics::vulkan::OffscreenCanvas::ensure3D().

◆ getOffscreenRenderPass()

const vkb::BuiltRenderPass & eve::graphics::vulkan::Graphics::getOffscreenRenderPass ( bool  hdr = false) const
inline

Returns the offscreen render pass.

在文件 Graphics.h 第 1033 行定义.

被这些函数引用 eve::graphics::vulkan::OffscreenCanvas::OffscreenCanvas().

◆ getPixel()

Color eve::graphics::vulkan::Graphics::getPixel ( int  x,
int  y 
)
overridevirtual

◆ getSceneAutoExposure()

bool eve::graphics::vulkan::Graphics::getSceneAutoExposure ( ) const
inlineoverridevirtual

Returns the scene auto exposure.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 905 行定义.

◆ getSceneAutoExposureMaxEV()

float eve::graphics::vulkan::Graphics::getSceneAutoExposureMaxEV ( ) const
inlineoverridevirtual

Returns the scene auto exposure max ev.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 909 行定义.

◆ getSceneAutoExposureMinEV()

float eve::graphics::vulkan::Graphics::getSceneAutoExposureMinEV ( ) const
inlineoverridevirtual

Returns the scene auto exposure min ev.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 907 行定义.

◆ getSceneBloomIntensity()

float eve::graphics::vulkan::Graphics::getSceneBloomIntensity ( ) const
inlineoverridevirtual

Returns the scene bloom intensity.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 916 行定义.

◆ getSceneBloomThreshold()

float eve::graphics::vulkan::Graphics::getSceneBloomThreshold ( ) const
inlineoverridevirtual

Returns the scene bloom threshold.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 918 行定义.

◆ getSceneColorFilter()

glm::vec3 eve::graphics::vulkan::Graphics::getSceneColorFilter ( ) const
inlineoverridevirtual

Returns the scene color filter.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 868 行定义.

◆ getSceneColorTexture()

Texture * eve::graphics::vulkan::Graphics::getSceneColorTexture ( )
overridevirtual

Returns the scene color texture.

重载 eve::graphics::Graphics .

在文件 Graphics.cpp 第 961 行定义.

◆ getSceneDofFarZ()

float eve::graphics::vulkan::Graphics::getSceneDofFarZ ( ) const
inlineoverridevirtual

Returns the scene dof far z.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 937 行定义.

◆ getSceneDofFocusDistance()

float eve::graphics::vulkan::Graphics::getSceneDofFocusDistance ( ) const
inlineoverridevirtual

Returns the scene dof focus distance.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 929 行定义.

◆ getSceneDofFocusRange()

float eve::graphics::vulkan::Graphics::getSceneDofFocusRange ( ) const
inlineoverridevirtual

Returns the scene dof focus range.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 933 行定义.

◆ getSceneDofMaxBlur()

float eve::graphics::vulkan::Graphics::getSceneDofMaxBlur ( ) const
inlineoverridevirtual

Returns the scene dof max blur.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 931 行定义.

◆ getSceneDofNearZ()

float eve::graphics::vulkan::Graphics::getSceneDofNearZ ( ) const
inlineoverridevirtual

Returns the scene dof near z.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 935 行定义.

◆ getSceneExposure()

float eve::graphics::vulkan::Graphics::getSceneExposure ( ) const
inlineoverridevirtual

Returns the scene exposure.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 862 行定义.

◆ getSceneGain()

glm::vec3 eve::graphics::vulkan::Graphics::getSceneGain ( ) const
inlineoverridevirtual

Returns the scene gain.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 881 行定义.

◆ getSceneInverseGamma()

glm::vec3 eve::graphics::vulkan::Graphics::getSceneInverseGamma ( ) const
inlineoverridevirtual

Returns the scene inverse gamma.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 879 行定义.

◆ getSceneLift()

glm::vec3 eve::graphics::vulkan::Graphics::getSceneLift ( ) const
inlineoverridevirtual

Returns the scene lift.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 877 行定义.

◆ getSceneLinearDepthTexture()

Texture * eve::graphics::vulkan::Graphics::getSceneLinearDepthTexture ( )
overridevirtual

Returns the scene linear depth texture.

@lifetime Returned texture is borrowed from the active scene targets.

重载 eve::graphics::Graphics .

在文件 Graphics.cpp 第 944 行定义.

引用了 eve::graphics::GBuffer::getDepthTexture(), eve::graphics::GBuffer::isValid() , 以及 eve::graphics::Graphics::renderControl_.

◆ getScenePhotographicVignette()

float eve::graphics::vulkan::Graphics::getScenePhotographicVignette ( ) const
inlineoverridevirtual

Read the current render-thread photographic vignette.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 858 行定义.

◆ getSceneToneMapping()

SceneToneMapping eve::graphics::vulkan::Graphics::getSceneToneMapping ( ) const
inlineoverridevirtual

Returns the scene tone mapping.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 848 行定义.

◆ getSceneTransitionLensDistortion()

float eve::graphics::vulkan::Graphics::getSceneTransitionLensDistortion ( ) const
inlineoverridevirtual

Returns the scene transition lens distortion.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 895 行定义.

◆ getSceneTransitionLensScale()

float eve::graphics::vulkan::Graphics::getSceneTransitionLensScale ( ) const
inlineoverridevirtual

Returns the scene transition lens scale.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 897 行定义.

◆ getSceneTransitionVignette()

float eve::graphics::vulkan::Graphics::getSceneTransitionVignette ( ) const
inlineoverridevirtual

Returns the scene transition vignette.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 891 行定义.

◆ getSceneTransitionVignetteSmoothness()

float eve::graphics::vulkan::Graphics::getSceneTransitionVignetteSmoothness ( ) const
inlineoverridevirtual

Returns the scene transition vignette smoothness.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 893 行定义.

◆ getSdlWindow()

void * eve::graphics::vulkan::Graphics::getSdlWindow ( ) const
inline

Returns the sdl window.

在文件 Graphics.h 第 1071 行定义.

◆ getSwapchain()

vkb::Swapchain & eve::graphics::vulkan::Graphics::getSwapchain ( )
inline

Returns the swapchain.

在文件 Graphics.h 第 1069 行定义.

◆ getSwapchainImageCount()

uint32_t eve::graphics::vulkan::Graphics::getSwapchainImageCount ( ) const
inline

Returns the swapchain image count.

在文件 Graphics.h 第 1073 行定义.

◆ getSwapchainRenderPass()

vk::RenderPass eve::graphics::vulkan::Graphics::getSwapchainRenderPass ( ) const
inline

Returns the swapchain render pass.

在文件 Graphics.h 第 1043 行定义.

◆ getTexSetLayout()

vk::DescriptorSetLayout eve::graphics::vulkan::Graphics::getTexSetLayout ( ) const
inline

Returns the tex set layout.

在文件 Graphics.h 第 1029 行定义.

被这些函数引用 eve::graphics::vulkan::OffscreenCanvas::OffscreenCanvas().

◆ getTexture()

Texture * eve::graphics::vulkan::Graphics::getTexture ( )
overridevirtual

Returns the texture.

实现了 eve::graphics::Canvas.

在文件 GraphicsPipeline.cpp 第 2180 行定义.

◆ getUiMsaaRenderPass()

vk::RenderPass eve::graphics::vulkan::Graphics::getUiMsaaRenderPass ( ) const
inline

Returns the ui msaa render pass.

在文件 Graphics.h 第 1045 行定义.

◆ getUiMsaaSamples()

vk::SampleCountFlagBits eve::graphics::vulkan::Graphics::getUiMsaaSamples ( ) const
inline

Sample count the UI MSAA pass runs with (matches getUiMsaaRenderPass).

在文件 Graphics.h 第 1047 行定义.

◆ getUploadPool()

vk::CommandPool eve::graphics::vulkan::Graphics::getUploadPool ( ) const
inline

Returns the upload pool.

在文件 Graphics.h 第 1016 行定义.

被这些函数引用 eve::gpgpu::computeCommandPool().

◆ gpuDrivenCaps()

const GpuDrivenCaps & eve::graphics::vulkan::Graphics::gpuDrivenCaps ( ) const
inline

Capabilities probed at device creation; empty when unavailable.

在文件 Graphics.h 第 415 行定义.

◆ gpuDrivenCullBegin()

◆ gpuDrivenCullEmit()

void eve::graphics::vulkan::Graphics::gpuDrivenCullEmit ( const glm::mat4 &  viewProj,
const glm::vec3 &  eye,
float  fovYDeg,
float  nearZ,
float  farZ 
)
virtual

◆ gpuDrivenCullEnabled()

bool eve::graphics::vulkan::Graphics::gpuDrivenCullEnabled ( ) const
inlinevirtual

Stage 2 cull is live for this frame (GPU-written commands).

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 507 行定义.

被这些函数引用 gpuDrivenCullBegin().

◆ gpuDrivenDrawOpaque()

void eve::graphics::vulkan::Graphics::gpuDrivenDrawOpaque ( )
virtual

Gpu driven draw opaque.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 1604 行定义.

引用了 b , 以及 mesh.

◆ gpuDrivenEnabled()

bool eve::graphics::vulkan::Graphics::gpuDrivenEnabled ( ) const
inlineoverridevirtual

Gpu driven enabled.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 450 行定义.

被这些函数引用 gpuDrivenSubmitOpaque() , 以及 gpuDrivenSubmitResident().

◆ gpuDrivenMaterialRecord()

uint32_t eve::graphics::vulkan::Graphics::gpuDrivenMaterialRecord ( Material *  material)
inlineoverridevirtual

Gpu driven material record.

Material table get or create.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 458 行定义.

引用了 material.

◆ gpuDrivenMaterialUsable()

bool eve::graphics::vulkan::Graphics::gpuDrivenMaterialUsable ( Material *  material)
overridevirtual

Gpu driven material usable.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 822 行定义.

引用了 eve::graphics::AtlasPageTable, material , 以及 eve::graphics::Transparent.

◆ gpuDrivenMeshRecord()

uint32_t eve::graphics::vulkan::Graphics::gpuDrivenMeshRecord ( Mesh *  mesh)
overridevirtual

Gpu driven mesh record.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 815 行定义.

引用了 eve::graphics::vulkan::kInvalidBindlessSlot , 以及 mesh.

◆ gpuDrivenOpenScenePass()

void eve::graphics::vulkan::Graphics::gpuDrivenOpenScenePass ( )
virtual

Gpu driven open scene pass.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 1496 行定义.

被这些函数引用 drawPrimitiveScene() , 以及 gpuDrivenSubmitResident().

◆ gpuDrivenRecordVisPass()

void eve::graphics::vulkan::Graphics::gpuDrivenRecordVisPass ( )
overridevirtual

Gpu driven record vis pass.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 1638 行定义.

引用了 b, h, u , 以及 w.

◆ gpuDrivenReflectionProbeSlot()

uint32_t eve::graphics::vulkan::Graphics::gpuDrivenReflectionProbeSlot ( Texture *  cubemap)
overridevirtual

Gpu driven reflection probe slot.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 446 行定义.

引用了 eve::graphics::Texture::gpuHandle , 以及 eve::graphics::kInvalidGpuDrivenSlot.

◆ gpuDrivenReleaseMaterialRecord()

Result< void > eve::graphics::vulkan::Graphics::gpuDrivenReleaseMaterialRecord ( Material *  material)
overridevirtual

◆ gpuDrivenResolve()

void eve::graphics::vulkan::Graphics::gpuDrivenResolve ( )
overridevirtual

Gpu driven resolve.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 1700 行定义.

引用了 h , 以及 w.

◆ gpuDrivenResolveWanted()

bool eve::graphics::vulkan::Graphics::gpuDrivenResolveWanted ( ) const
overridevirtual

Stage 3: vis+resolve live for this frame (opt-in, 1x scene pass).

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 52 行定义.

引用了 eve::graphics::vulkan::GpuDrivenCaps::gpuDrivenCullAvailable() , 以及 eve::graphics::Graphics::renderControl_.

◆ gpuDrivenScenePassPending()

bool eve::graphics::vulkan::Graphics::gpuDrivenScenePassPending ( ) const
inlinevirtual

Scene color pass is deferred until after the compute cull section.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 511 行定义.

被这些函数引用 gpuDrivenSubmitResident().

◆ gpuDrivenSetEnabled()

void eve::graphics::vulkan::Graphics::gpuDrivenSetEnabled ( bool  enabled)
inlineoverridevirtual

Gpu driven set enabled.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 454 行定义.

引用了 enabled.

◆ gpuDrivenSubmitOpaque()

◆ gpuDrivenSubmitResident()

◆ gpuDrivenVgAssetId()

uint32_t eve::graphics::vulkan::Graphics::gpuDrivenVgAssetId ( Mesh *  mesh) const
overridevirtual

◆ gpuDrivenVgAttachToMesh()

bool eve::graphics::vulkan::Graphics::gpuDrivenVgAttachToMesh ( Mesh *  mesh,
uint32_t  vgAssetId 
)
override

◆ gpuDrivenVgComputeSection()

void eve::graphics::vulkan::Graphics::gpuDrivenVgComputeSection ( const glm::mat4 &  viewProj,
const glm::vec3 &  eye,
float  fovYDeg,
float  nearZ,
float  farZ 
)
overridevirtual

Gpu driven vg compute section.

重载 eve::graphics::Graphics .

在文件 GraphicsGpuDriven.cpp 第 1416 行定义.

引用了 eye , 以及 viewProj.

◆ gpuDrivenVgSetInstance()

bool eve::graphics::vulkan::Graphics::gpuDrivenVgSetInstance ( uint32_t  vgAssetId,
const glm::mat4 &  model,
uint32_t  materialId 
)
override

Gpu driven vg set instance.

在文件 GraphicsGpuDriven.cpp 第 723 行定义.

引用了 m , 以及 model.

◆ gpuDrivenVgUpload()

◆ gpuFrameMs()

float eve::graphics::vulkan::Graphics::gpuFrameMs ( ) const
overridevirtual

Gpu frame ms.

实现了 eve::service::IGpuTimer.

在文件 Graphics.cpp 第 1177 行定义.

◆ gpuTimingAvailable()

bool eve::graphics::vulkan::Graphics::gpuTimingAvailable ( ) const
overridevirtual

Gpu timing available.

实现了 eve::service::IGpuTimer.

在文件 Graphics.cpp 第 1175 行定义.

◆ initGpuTiming()

void eve::graphics::vulkan::Graphics::initGpuTiming ( )

Creates the GPU timestamp query pool; call after device init.

在文件 Graphics.cpp 第 1135 行定义.

引用了 device.

◆ initHeadless()

void eve::graphics::vulkan::Graphics::initHeadless ( int  width,
int  height 
)
overridevirtual

◆ initWithWindow()

void eve::graphics::vulkan::Graphics::initWithWindow ( void *  nativeWindow)
overridevirtual

Initializes with window.

实现了 eve::graphics::Graphics.

在文件 Graphics.cpp 第 735 行定义.

引用了 count, device, newCubemap(), newTexture(), eve::recordLogEvent() , 以及 setViewportSize().

◆ isCanvasActive()

bool eve::graphics::vulkan::Graphics::isCanvasActive ( ) const
overridevirtual

True when canvas active.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 579 行定义.

被这些函数引用 begin3DFrame() , 以及 present().

◆ isHeadless()

bool eve::graphics::vulkan::Graphics::isHeadless ( ) const
inlineoverridevirtual

True when headless.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 378 行定义.

◆ materialTableGetOrCreate()

uint32_t eve::graphics::vulkan::Graphics::materialTableGetOrCreate ( eve::graphics::Material *  material)

Get (or lazily create) the GPU material-table slot for a material.

在文件 GraphicsGpuDriven.cpp 第 784 行定义.

引用了 idx, eve::graphics::vulkan::kInvalidBindlessSlot, material , 以及 syncMaterialTable().

◆ newCanvas()

Canvas * eve::graphics::vulkan::Graphics::newCanvas ( int  width,
int  height 
)
overridevirtual

Creates a canvas. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 538 行定义.

引用了 c, h , 以及 w.

◆ newCubemap() [1/2]

Texture * eve::graphics::vulkan::Graphics::newCubemap ( int  faceSize,
const uint8_t *  rgbaFaces 
)
overridevirtual

Creates a cubemap. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 310 行定义.

引用了 newCubemap() , 以及 eve::graphics::TextureCreateInfo::withMipmaps().

被这些函数引用 initHeadless(), initWithWindow() , 以及 newCubemap().

◆ newCubemap() [2/2]

Texture * eve::graphics::vulkan::Graphics::newCubemap ( int  faceSize,
const uint8_t *  rgbaFaces,
const TextureCreateInfo &  info 
)
overridevirtual

Creates a cubemap. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 315 行定义.

引用了 bytes, info, eve::graphics::mipmapCountForSize() , 以及 eve::graphics::vulkan::uploadTextureForAllShaderStages().

◆ newHairShaderFromSpv()

Shader * eve::graphics::vulkan::Graphics::newHairShaderFromSpv ( const std::vector< uint32_t > &  vertSpv,
const std::vector< uint32_t > &  fragSpv 
)
overridevirtual

Creates a hair shader from spv. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1187 行定义.

引用了 eve::graphics::Shader::eMesh3D , 以及 vert.

◆ newHairShaderFromWgsl()

Shader * eve::graphics::vulkan::Graphics::newHairShaderFromWgsl ( const std::string &  vertWgsl,
const std::string &  fragWgsl 
)
overridevirtual

Creates a hair shader from wgsl. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1228 行定义.

◆ newHDRCanvas()

Canvas * eve::graphics::vulkan::Graphics::newHDRCanvas ( int  width,
int  height 
)
overridevirtual

Creates a hdr canvas. @ownership Caller deletes unless documented otherwise.

@lifetime Returned canvas is Graphics-owned until explicitly released.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 551 行定义.

引用了 c, h , 以及 w.

◆ newHDRCubemap()

Texture * eve::graphics::vulkan::Graphics::newHDRCubemap ( int  faceSize)
overridevirtual

Creates a hdr cubemap. @ownership Caller deletes unless documented otherwise.

@lifetime Returned texture is Graphics-owned until explicitly released.

重载 eve::graphics::Graphics .

在文件 GraphicsTexture.cpp 第 367 行定义.

引用了 index, eve::graphics::TextureSampler::linearMipmap(), eve::graphics::mipmapCountForSize(), size , 以及 u.

◆ newImageData()

image::ImageData * eve::graphics::vulkan::Graphics::newImageData ( )
overridevirtual

Creates a image data. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Canvas.

在文件 Graphics2D.cpp 第 281 行定义.

引用了 eve::graphics::Graphics::pixelHeight , 以及 eve::graphics::Graphics::pixelWidth.

◆ newMeshCylinder()

Mesh * eve::graphics::vulkan::Graphics::newMeshCylinder ( int  slices = 32,
int  stacks = 1,
bool  caps = true 
)
overridevirtual

Creates a mesh cylinder. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 516 行定义.

引用了 caps, cx, device, handle, i0, i1, i2, indices, nx, ny, nz, eve::graphics::vulkan::MeshVertex::pos, px, py, pz, sz, u, v, vert, verts, x , 以及 y.

◆ newMeshFromArrays()

Mesh * eve::graphics::vulkan::Graphics::newMeshFromArrays ( const float *  posXYZ,
const float *  nrmXYZ,
const float *  uvST,
int  vertexCount,
const uint32_t *  indices,
int  indexCount 
)
overridevirtual

Creates a mesh from arrays. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 247 行定义.

引用了 indexCount, indices, eve::graphics::Graphics::newMeshFromArraysColored() , 以及 vertexCount.

◆ newMeshFromArraysColored()

Mesh * eve::graphics::vulkan::Graphics::newMeshFromArraysColored ( const float *  posXYZ,
const float *  nrmXYZ,
const float *  uvST,
const float *  colorRGBA,
int  vertexCount,
const uint32_t *  indices,
int  indexCount 
)
overridevirtual

Create a mesh with a packed linear RGBA vertex-color stream.

返回
Factory-owned mesh, or nullptr when validation or backend allocation fails. @ownership The resource factory owns the returned mesh; release it through releaseMesh. @lifetime Valid until releaseMesh, graphics shutdown, or device loss. @thread Graphics thread; all input arrays are borrowed and consumed synchronously.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 252 行定义.

引用了 eve::graphics::Mesh::computeBounds(), device, handle, idx, indexCount, indices, eve::graphics::vulkan::MeshVertex::pos, v, vertexCount , 以及 verts.

◆ newMeshFromAssimp() [1/2]

Mesh * eve::graphics::vulkan::Graphics::newMeshFromAssimp ( const ::aiMesh &  mesh)
overridevirtual

Creates a mesh from assimp. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 52 行定义.

引用了 b, mesh, eve::graphics::vulkan::MeshVertex::pos, t, tangent, v , 以及 verts.

◆ newMeshFromAssimp() [2/2]

Mesh * eve::graphics::vulkan::Graphics::newMeshFromAssimp ( const ::aiMesh &  mesh,
const aiMatrix4x4 &  worldTransform 
)
overridevirtual

Creates a mesh from assimp. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 149 行定义.

引用了 f, idx, mesh, eve::graphics::Graphics::newMeshFromAssimp(), normals , 以及 positions.

◆ newMeshShader()

Shader * eve::graphics::vulkan::Graphics::newMeshShader ( const std::string &  vertGlsl,
const std::string &  fragGlsl 
)
overridevirtual

Creates a mesh shader. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1272 行定义.

引用了 eve::graphics::eFragment, eve::graphics::eVertex, frag, eve::graphics::Graphics::newMeshShaderFromSpv() , 以及 vert.

被这些函数引用 replaceShaderFromGlsl().

◆ newMeshShaderFromSpv()

Shader * eve::graphics::vulkan::Graphics::newMeshShaderFromSpv ( const std::vector< uint32_t > &  vertSpv,
const std::vector< uint32_t > &  fragSpv 
)
overridevirtual

Creates a mesh shader from spv. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1141 行定义.

引用了 eve::graphics::Shader::eMesh3D, frag , 以及 vert.

◆ newMeshShaderFromWgsl()

Shader * eve::graphics::vulkan::Graphics::newMeshShaderFromWgsl ( const std::string &  vertWgsl,
const std::string &  fragWgsl 
)
overridevirtual

Creates a mesh shader from wgsl. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1280 行定义.

◆ newMeshSphere()

Mesh * eve::graphics::vulkan::Graphics::newMeshSphere ( int  slices = 32,
int  stacks = 16 
)
overridevirtual

Creates a mesh sphere. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 437 行定义.

引用了 device, handle, i0, i1, i2, indices, phi, eve::graphics::vulkan::MeshVertex::pos, px, py, pz, rows, u, v, vert, verts, x , 以及 y.

◆ newShader()

Shader * eve::graphics::vulkan::Graphics::newShader ( const std::string &  vertGlsl,
const std::string &  fragGlsl 
)
overridevirtual

Creates a shader. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1133 行定义.

引用了 eve::graphics::eFragment, eve::graphics::eVertex, frag, eve::graphics::Graphics::newShaderFromSpv() , 以及 vert.

被这些函数引用 replaceShaderFromGlsl().

◆ newShaderFromSpv()

Shader * eve::graphics::vulkan::Graphics::newShaderFromSpv ( const std::vector< uint32_t > &  vertSpv,
const std::vector< uint32_t > &  fragSpv 
)
overridevirtual

Creates a shader from spv. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1090 行定义.

引用了 eve::Opaque , 以及 vert.

◆ newShaderFromSpvFile()

Shader * eve::graphics::vulkan::Graphics::newShaderFromSpvFile ( const std::string &  vertPath,
const std::string &  fragPath 
)
overridevirtual

Creates a shader from spv file. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1125 行定义.

引用了 frag, eve::graphics::Graphics::newShaderFromSpv() , 以及 vert.

◆ newShaderFromWgsl()

Shader * eve::graphics::vulkan::Graphics::newShaderFromWgsl ( const std::string &  vertWgsl,
const std::string &  fragWgsl 
)
overridevirtual

Creates a shader from wgsl. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 1285 行定义.

◆ newSharedTexture()

ResultRef< Texture > eve::graphics::vulkan::Graphics::newSharedTexture ( image::ImageData *  data,
const std::string &  contentKey 
)
overridevirtual

Reuse immutable imported pixels. Graphics owns the returned texture until release or shutdown.

重载 eve::graphics::IResourceFactory .

在文件 GraphicsTexture.cpp 第 767 行定义.

引用了 error, eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure(), found, eve::InvalidArgument, eve::graphics::Graphics::newTexture() , 以及 eve::Result< T >::success().

◆ newTexture() [1/4]

Texture * eve::graphics::vulkan::Graphics::newTexture ( image::ImageData *  data)
overridevirtual

Creates a texture. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 749 行定义.

引用了 eve::graphics::Graphics::newTexture().

◆ newTexture() [2/4]

Texture * eve::graphics::vulkan::Graphics::newTexture ( image::ImageData *  data,
const TextureCreateInfo &  info 
)
overridevirtual

Creates a texture. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 758 行定义.

引用了 info , 以及 eve::graphics::Graphics::newTexture().

◆ newTexture() [3/4]

Texture * eve::graphics::vulkan::Graphics::newTexture ( int  width,
int  height,
const uint8_t *  rgba,
bool  repeatU = false,
bool  repeatV = false 
)
overridevirtual

Creates a texture. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 85 行定义.

引用了 h, info, newTexture(), eve::graphics::TextureSampler::repeatU, repeatU, repeatV, eve::graphics::TextureCreateInfo::sampler , 以及 w.

被这些函数引用 initHeadless(), initWithWindow() , 以及 newTexture().

◆ newTexture() [4/4]

Texture * eve::graphics::vulkan::Graphics::newTexture ( int  width,
int  height,
const uint8_t *  rgba,
const TextureCreateInfo &  info 
)
overridevirtual

Creates a texture. @ownership Caller deletes unless documented otherwise.

实现了 eve::graphics::Graphics.

在文件 GraphicsTexture.cpp 第 92 行定义.

引用了 bytes, h, info, eve::graphics::mipmapCountForSize(), eve::graphics::vulkan::uploadTextureForAllShaderStages() , 以及 w.

◆ newTexture3DRgba8()

Result< Texture * > eve::graphics::vulkan::Graphics::newTexture3DRgba8 ( uint32_t  width,
uint32_t  height,
uint32_t  depth,
std::span< const uint8_t >  rgba 
)
overridevirtual

◆ newTextureArrayRgba16f()

Result< Texture * > eve::graphics::vulkan::Graphics::newTextureArrayRgba16f ( uint32_t  width,
uint32_t  height,
uint32_t  layers,
std::span< const uint16_t >  rgbaHalf 
)
overridevirtual

◆ newTextureFromFile()

Texture * eve::graphics::vulkan::Graphics::newTextureFromFile ( const std::string &  filename)
overridevirtual

◆ newTextureMipChain()

Result< Texture * > eve::graphics::vulkan::Graphics::newTextureMipChain ( uint32_t  width,
uint32_t  height,
uint32_t  levels,
std::span< const uint8_t >  rgba 
)
overridevirtual

◆ onNativeWindowDestroyed()

void eve::graphics::vulkan::Graphics::onNativeWindowDestroyed ( )
overridevirtual

◆ popValidationScope()

void eve::graphics::vulkan::Graphics::popValidationScope ( )
inlineoverridevirtual

Pops validation scope.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 558 行定义.

◆ postSceneCommandBuffer()

vk::CommandBuffer & eve::graphics::vulkan::Graphics::postSceneCommandBuffer ( )
inline

Borrow the open present command buffer for post-scene recording.

前置条件
canRecordPostSceneGpuWork() is true.

在文件 Graphics.h 第 1027 行定义.

◆ present()

void eve::graphics::vulkan::Graphics::present ( )
overridevirtual

Present.

实现了 eve::graphics::Graphics.

在文件 Graphics.cpp 第 1112 行定义.

引用了 eve::graphics::Graphics::isActive() , 以及 isCanvasActive().

◆ pushValidationScope()

void eve::graphics::vulkan::Graphics::pushValidationScope ( )
inlineoverridevirtual

Pushes validation scope.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 556 行定义.

◆ queryDisplayOutputSupport()

Result< Graphics::DisplayOutputSupport > eve::graphics::vulkan::Graphics::queryDisplayOutputSupport ( ) const
overridevirtual

Queries display output support.

重载 eve::graphics::Graphics .

在文件 GraphicsDisplayOutput.cpp 第 118 行定义.

引用了 eve::Diagnostic::error(), eve::Failed, eve::Result< T >::failure() , 以及 eve::Result< T >::success().

◆ rayTracingCaps()

RayTracingCaps eve::graphics::vulkan::Graphics::rayTracingCaps ( ) const
inlineoverridevirtual

Ray tracing caps.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 420 行定义.

被这些函数引用 eve::graphics::raytracing::VulkanRayTracing::caps().

◆ rayTracingCapsRef()

const RayTracingCaps & eve::graphics::vulkan::Graphics::rayTracingCapsRef ( ) const
inline

Hardware ray-tracing capabilities probed at device creation.

在文件 Graphics.h 第 418 行定义.

◆ readDecalLayerToImageData()

image::ImageData * eve::graphics::vulkan::Graphics::readDecalLayerToImageData ( const std::string &  attachment)
overridevirtual

Reads decal layer to image data.

重载 eve::graphics::Graphics .

在文件 Graphics2D.cpp 第 486 行定义.

引用了 device, h , 以及 w.

◆ readGBufferToImageData()

image::ImageData * eve::graphics::vulkan::Graphics::readGBufferToImageData ( const std::string &  name)
overridevirtual

Reads g buffer to image data.

重载 eve::graphics::Graphics .

在文件 Graphics2D.cpp 第 430 行定义.

引用了 device, h , 以及 w.

◆ readGpuFrameTiming()

void eve::graphics::vulkan::Graphics::readGpuFrameTiming ( )

Reads the query results after the frame's submit has completed.

在文件 Graphics.cpp 第 1163 行定义.

引用了 device , 以及 r.

◆ releaseGpuParticleEmitter()

void eve::graphics::vulkan::Graphics::releaseGpuParticleEmitter ( GpuParticleHandle  handle)
overridevirtual

Release gpu particle emitter.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 187 行定义.

引用了 device, found, handle , 以及 waitForSharedGpuResources().

◆ releaseMesh()

bool eve::graphics::vulkan::Graphics::releaseMesh ( Mesh *  mesh)
overridevirtual

Release mesh.

重载 eve::graphics::Graphics .

在文件 GraphicsMesh.cpp 第 411 行定义.

引用了 g, m , 以及 mesh.

◆ releaseShader()

bool eve::graphics::vulkan::Graphics::releaseShader ( Shader *  shader)
overridevirtual

Release shader.

重载 eve::graphics::Graphics .

在文件 Graphics2D.cpp 第 1232 行定义.

引用了 device, g, s , 以及 shader.

被这些函数引用 replaceShaderFromGlsl().

◆ releaseTexture()

bool eve::graphics::vulkan::Graphics::releaseTexture ( Texture *  texture)
overridevirtual

◆ reloadTextureFromFile()

bool eve::graphics::vulkan::Graphics::reloadTextureFromFile ( const std::string &  filename)
overridevirtual

◆ renderEntityIdMask()

image::ImageData * eve::graphics::vulkan::Graphics::renderEntityIdMask ( const std::vector< eve::graphics::Graphics::EntityIdDraw > &  draws,
const glm::mat4 &  viewProj,
int  width,
int  height 
)
override

Renders entity id mask.

在文件 Graphics2D.cpp 第 319 行定义.

引用了 d, eve::graphics::Texture::gpuHandle, h, viewProj, w , 以及 x.

◆ replaceMeshShaderResources()

◆ replaceShaderFromGlsl()

◆ replaceShaderFromSpv()

◆ replaceShaderFromWgsl()

Result< void > eve::graphics::vulkan::Graphics::replaceShaderFromWgsl ( Shader &  shader,
const std::string &  vertWgsl,
const std::string &  fragWgsl 
)
overridevirtual

Replace shader from wgsl.

实现了 eve::graphics::Graphics.

在文件 GraphicsShaderReload.cpp 第 153 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure() , 以及 eve::Unsupported.

◆ replaceTexturePixels()

bool eve::graphics::vulkan::Graphics::replaceTexturePixels ( Texture *  tex,
image::ImageData *  data 
)

Replace texture pixels.

在文件 GraphicsTexture.cpp 第 873 行定义.

◆ replaceTexturePixelsRGBA()

◆ requestSurfaceRecreate()

void eve::graphics::vulkan::Graphics::requestSurfaceRecreate ( )
inlineoverridevirtual

Request surface recreate.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 382 行定义.

◆ resetGpuParticleEmitter()

void eve::graphics::vulkan::Graphics::resetGpuParticleEmitter ( GpuParticleHandle  handle)
overridevirtual

Resets gpu particle emitter.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 202 行定义.

引用了 found, handle , 以及 resource.

◆ setCanvas()

void eve::graphics::vulkan::Graphics::setCanvas ( Canvas *  canvas)
overridevirtual

Sets the canvas.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 564 行定义.

◆ setCloudShadows()

void eve::graphics::vulkan::Graphics::setCloudShadows ( float  strength,
float  worldCell,
float  time,
float  windSpeed,
float  windAngle,
float  coverage,
float  detail 
)
overridevirtual

◆ setDecalCamera()

void eve::graphics::vulkan::Graphics::setDecalCamera ( const glm::mat4 &  viewProj,
float  nearZ,
float  farZ 
)
overridevirtual

Sets the decal camera.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 861 行定义.

引用了 viewProj.

◆ setDisplayHdrCalibration()

Result< void > eve::graphics::vulkan::Graphics::setDisplayHdrCalibration ( float  paperWhiteNits,
float  peakNits 
)
overridevirtual

◆ setDisplayOutputMode()

◆ setLighting2D()

void eve::graphics::vulkan::Graphics::setLighting2D ( const Lighting2DUBO &  ubo)
overridevirtual

Sets the lighting 2 d.

实现了 eve::graphics::Graphics.

在文件 Graphics2D.cpp 第 943 行定义.

◆ setMesh3DCameraPos()

void eve::graphics::vulkan::Graphics::setMesh3DCameraPos ( const glm::vec3 &  eye)
overridevirtual

Sets the mesh 3 d camera pos.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 363 行定义.

引用了 eve::graphics::vulkan::Mesh3DUBO::cameraPos , 以及 eye.

◆ setMesh3DClip()

void eve::graphics::vulkan::Graphics::setMesh3DClip ( float  nearZ,
float  farZ 
)
overridevirtual

Sets the mesh 3 d clip.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1203 行定义.

引用了 eve::graphics::ClusteredLightingUpload::clipInfo, eve::graphics::vulkan::Mesh3DUBO::clipInfo, f , 以及 n.

◆ setMesh3DClusteredActive()

void eve::graphics::vulkan::Graphics::setMesh3DClusteredActive ( bool  active)
overridevirtual

Sets the mesh 3 d clustered active.

实现了 eve::graphics::Graphics.

在文件 GraphicsPipeline.cpp 第 1992 行定义.

引用了 active.

◆ setMesh3DClusteredLighting()

void eve::graphics::vulkan::Graphics::setMesh3DClusteredLighting ( const ClusteredLightingUpload &  upload)
overridevirtual

Sets the mesh 3 d clustered lighting.

实现了 eve::graphics::Graphics.

在文件 GraphicsPipeline.cpp 第 1983 行定义.

引用了 eve::graphics::ClusteredLightingUpload::active.

被这些函数引用 drawDeferredLighting().

◆ setMesh3DEnv()

void eve::graphics::vulkan::Graphics::setMesh3DEnv ( Texture *  cube,
float  intensity 
)
overridevirtual

Sets the mesh 3 d env.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 668 行定义.

◆ setMesh3DEnvProbe()

void eve::graphics::vulkan::Graphics::setMesh3DEnvProbe ( const glm::vec3 &  center,
const glm::vec3 &  extent 
)
overridevirtual

◆ setMesh3DHeightTexture()

void eve::graphics::vulkan::Graphics::setMesh3DHeightTexture ( Texture *  height)
overridevirtual

Sets the mesh 3 d height texture.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 602 行定义.

◆ setMesh3DLight()

void eve::graphics::vulkan::Graphics::setMesh3DLight ( const glm::vec3 &  dir,
const glm::vec3 &  color 
)
overridevirtual

Sets the mesh 3 d light.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 355 行定义.

引用了 color, d, dir, eve::graphics::vulkan::Mesh3DUBO::lightColor , 以及 eve::graphics::vulkan::Mesh3DUBO::lightDir.

◆ setMesh3DLighting()

◆ setMesh3DLodDither()

void eve::graphics::vulkan::Graphics::setMesh3DLodDither ( float  weight,
bool  reverse,
bool  enabled 
)
overridevirtual

Sets the mesh 3 d lod dither.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1047 行定义.

引用了 enabled, eve::graphics::vulkan::Mesh3DUBO::lodFade , 以及 weight.

◆ setMesh3DMaterial()

void eve::graphics::vulkan::Graphics::setMesh3DMaterial ( float  metallic,
float  roughness 
)
overridevirtual

◆ setMesh3DNormalTexture()

void eve::graphics::vulkan::Graphics::setMesh3DNormalTexture ( Texture *  normal)
overridevirtual

Sets the mesh 3 d normal texture.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 595 行定义.

引用了 normal.

◆ setMesh3DPackedNormalMask()

void eve::graphics::vulkan::Graphics::setMesh3DPackedNormalMask ( bool  enabled)
overridevirtual

Sets the mesh 3 d packed normal mask.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 597 行定义.

引用了 enabled , 以及 eve::graphics::vulkan::Mesh3DUBO::virtualAtlas.

◆ setMesh3DParallax()

void eve::graphics::vulkan::Graphics::setMesh3DParallax ( float  scale,
float  minLayers = 8.f,
float  maxLayers = 32.f 
)
overridevirtual

Sets the mesh 3 d parallax.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1036 行定义.

引用了 eve::graphics::vulkan::Mesh3DUBO::parallax , 以及 scale.

◆ setMesh3DPbrSurface()

◆ setMesh3DReflectionProbes()

void eve::graphics::vulkan::Graphics::setMesh3DReflectionProbes ( const ReflectionProbeUpload &  upload)
overridevirtual

Sets the mesh 3 d reflection probes.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 681 行定义.

◆ setMesh3DSceneColor()

void eve::graphics::vulkan::Graphics::setMesh3DSceneColor ( Texture *  color)
overridevirtual

Sets the mesh 3 d scene color.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 619 行定义.

引用了 color.

◆ setMesh3DSceneDepth()

void eve::graphics::vulkan::Graphics::setMesh3DSceneDepth ( Texture *  depth)
overridevirtual

Sets the mesh 3 d scene depth.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 617 行定义.

引用了 depth.

◆ setMesh3DShadowReceive()

void eve::graphics::vulkan::Graphics::setMesh3DShadowReceive ( bool  receive)
overridevirtual

Sets the mesh 3 d shadow receive.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 687 行定义.

◆ setMesh3DShadows()

void eve::graphics::vulkan::Graphics::setMesh3DShadows ( const ShadowUpload &  upload)
overridevirtual

Sets the mesh 3 d shadows.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 685 行定义.

◆ setMesh3DSkinInfluenceLimit()

void eve::graphics::vulkan::Graphics::setMesh3DSkinInfluenceLimit ( SkinInfluenceLimit  count)
overridevirtual

Sets the mesh 3 d skin influence limit.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 689 行定义.

引用了 count.

◆ setMesh3DSSAO()

void eve::graphics::vulkan::Graphics::setMesh3DSSAO ( float  intensity)
inlineoverridevirtual

Sets the mesh 3 dssao.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 834 行定义.

◆ setMesh3DSurface()

void eve::graphics::vulkan::Graphics::setMesh3DSurface ( SurfaceMode  mode,
BlendMode  blend,
bool  depthWrite,
bool  doubleSided,
float  alphaCutoff,
const std::string &  alphaTechnique = "cutoff" 
)
overridevirtual

Sets the mesh 3 d surface.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1017 行定义.

引用了 alphaCutoff, blend , 以及 doubleSided.

◆ setMesh3DTexCellBomb()

void eve::graphics::vulkan::Graphics::setMesh3DTexCellBomb ( float  cellScale,
float  strength,
float  rotAmount = 1.f 
)
overridevirtual

Sets the mesh 3 d tex cell bomb.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1028 行定义.

引用了 strength , 以及 eve::graphics::vulkan::Mesh3DUBO::texBomb.

◆ setMesh3DView()

void eve::graphics::vulkan::Graphics::setMesh3DView ( const glm::mat4 &  view)
overridevirtual

Sets the mesh 3 d view.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1199 行定义.

引用了 view , 以及 eve::graphics::vulkan::Mesh3DUBO::view.

◆ setMesh3DViewProj()

void eve::graphics::vulkan::Graphics::setMesh3DViewProj ( const glm::mat4 &  viewProj)
overridevirtual

Sets the mesh 3 d view proj.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 1195 行定义.

引用了 eve::graphics::vulkan::Mesh3DUBO::mvp , 以及 viewProj.

◆ setMesh3DVirtualTexture()

void eve::graphics::vulkan::Graphics::setMesh3DVirtualTexture ( bool  enabled,
int  pageCountX,
int  pageCountY,
int  atlasSlotsX,
int  atlasSlotsY,
float  borderFraction 
)
overridevirtual

Sets the mesh 3 d virtual texture.

实现了 eve::graphics::Graphics.

在文件 Graphics3D.cpp 第 604 行定义.

引用了 enabled, eve::graphics::vulkan::Mesh3DUBO::virtualAtlas , 以及 eve::graphics::vulkan::Mesh3DUBO::virtualTexture.

◆ setMeshSkinningData()

bool eve::graphics::vulkan::Graphics::setMeshSkinningData ( Mesh *  mesh,
const uint16_t *  joints4,
const float *  weights4,
int  vertexCount 
)
overridevirtual

Sets the mesh skinning data.

重载 eve::graphics::Graphics .

在文件 GraphicsMesh.cpp 第 386 行定义.

引用了 mesh, source, vertexCount, verts , 以及 weights.

◆ setMsaaSamples()

void eve::graphics::vulkan::Graphics::setMsaaSamples ( int  samples)
inlineoverridevirtual

Sets the msaa samples.

Sets the msaa samples.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 401 行定义.

引用了 eve::graphics::Graphics::setMsaaSamples().

◆ setSceneAutoExposure()

void eve::graphics::vulkan::Graphics::setSceneAutoExposure ( bool  enabled,
float  minEV,
float  maxEV 
)
inlineoverridevirtual

Sets the scene auto exposure.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 899 行定义.

引用了 enabled.

◆ setSceneBloom()

void eve::graphics::vulkan::Graphics::setSceneBloom ( float  intensity,
float  threshold 
)
inlineoverridevirtual

Sets the scene bloom.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 911 行定义.

◆ setSceneColorFilter()

void eve::graphics::vulkan::Graphics::setSceneColorFilter ( const glm::vec3 &  color)
inlineoverridevirtual

Sets the scene color filter.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 864 行定义.

引用了 color.

◆ setSceneDepthOfField()

void eve::graphics::vulkan::Graphics::setSceneDepthOfField ( float  focusDistance,
float  maxBlurPx,
float  focusRange,
float  nearZ,
float  farZ 
)
inlineoverridevirtual

Sets the scene depth of field.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 920 行定义.

◆ setSceneExposure()

void eve::graphics::vulkan::Graphics::setSceneExposure ( float  exposure)
inlineoverridevirtual

Sets the scene exposure.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 860 行定义.

◆ setSceneLiftGammaGain()

void eve::graphics::vulkan::Graphics::setSceneLiftGammaGain ( const glm::vec3 &  lift,
const glm::vec3 &  inverseGamma,
const glm::vec3 &  gain 
)
inlineoverridevirtual

Sets the scene lift gamma gain.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 870 行定义.

◆ setScenePhotographicVignette()

Result< void > eve::graphics::vulkan::Graphics::setScenePhotographicVignette ( float  intensity)
overridevirtual

Set the render-thread photographic vignette; inherited validation and ownership contract.

重载 eve::graphics::Graphics .

在文件 GraphicsToneMapping.cpp 第 13 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument , 以及 eve::Result< T >::success().

◆ setSceneToneMapping()

Result< void > eve::graphics::vulkan::Graphics::setSceneToneMapping ( SceneToneMapping  mode)
overridevirtual

◆ setSceneTransitionFx()

void eve::graphics::vulkan::Graphics::setSceneTransitionFx ( float  vignette,
float  vignetteSmoothness,
float  lensDistortion,
float  lensScale 
)
inlineoverridevirtual

Sets the scene transition fx.

实现了 eve::graphics::Graphics.

在文件 Graphics.h 第 883 行定义.

◆ setScreenReadbackEnabled()

void eve::graphics::vulkan::Graphics::setScreenReadbackEnabled ( bool  enabled)
inlineoverridevirtual

Sets the screen readback enabled.

Sets the screen readback enabled.

Ensure present capture hook.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 386 行定义.

引用了 enabled , 以及 eve::graphics::Graphics::setScreenReadbackEnabled().

◆ setTextureSampler()

void eve::graphics::vulkan::Graphics::setTextureSampler ( Texture *  texture,
const TextureSampler &  sampler 
)
overridevirtual

◆ setViewportSize()

void eve::graphics::vulkan::Graphics::setViewportSize ( int  width,
int  height,
int  pixelwidth,
int  pixelheight 
)
overridevirtual

◆ setVSync()

void eve::graphics::vulkan::Graphics::setVSync ( bool  enabled)
inlineoverridevirtual

Sets the v sync.

Sets the v sync.

Mark swapchain dirty.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 393 行定义.

引用了 enabled , 以及 eve::graphics::Graphics::setVSync().

◆ supportsDecal()

bool eve::graphics::vulkan::Graphics::supportsDecal ( ) const
inlineoverridevirtual

Supports decal.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 972 行定义.

◆ supportsDeferredLighting()

bool eve::graphics::vulkan::Graphics::supportsDeferredLighting ( ) const
inlineoverridevirtual

Supports deferred lighting.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 446 行定义.

◆ supportsGpuDriven3D()

bool eve::graphics::vulkan::Graphics::supportsGpuDriven3D ( ) const
inlineoverridevirtual

Supports gpu driven 3 d.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 442 行定义.

◆ supportsGpuParticles()

bool eve::graphics::vulkan::Graphics::supportsGpuParticles ( ) const
inlineoverridevirtual

Supports gpu particles.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 478 行定义.

被这些函数引用 canSubmitGpuParticles() , 以及 createGpuParticleEmitter().

◆ supportsRayTracing()

bool eve::graphics::vulkan::Graphics::supportsRayTracing ( ) const
inlineoverridevirtual

Supports ray tracing.

重载 eve::graphics::Graphics .

在文件 Graphics.h 第 422 行定义.

被这些函数引用 eve::graphics::raytracing::VulkanRayTracing::isAvailable().

◆ supportsRuntimeGlslCompilation()

bool eve::graphics::vulkan::Graphics::supportsRuntimeGlslCompilation ( ) const
overridevirtual

Supports runtime glsl compilation.

重载 eve::graphics::Graphics .

在文件 Graphics.cpp 第 294 行定义.

引用了 eve::graphics::glslRuntimeCompilationAvailable().

◆ syncMaterialTable()

void eve::graphics::vulkan::Graphics::syncMaterialTable ( )

Upload all registered material records to the GPU table.

在文件 GraphicsGpuDriven.cpp 第 808 行定义.

被这些函数引用 gpuDrivenReleaseMaterialRecord() , 以及 materialTableGetOrCreate().

◆ updateGpuParticleEmitter()

bool eve::graphics::vulkan::Graphics::updateGpuParticleEmitter ( GpuParticleHandle  handle,
const GpuParticleUpdate &  update,
const GpuParticleSpawn *  spawns,
std::uint32_t  spawnCount 
)
overridevirtual

Updates gpu particle emitter.

@compatibility Implements the established GPU-particle boolean submission facade.

重载 eve::graphics::Graphics .

在文件 GraphicsParticles.cpp 第 213 行定义.

引用了 canSubmitGpuParticles(), found, handle, resource , 以及 spawnCount.

◆ updateMeshVertices()

bool eve::graphics::vulkan::Graphics::updateMeshVertices ( Mesh *  mesh,
const float *  posXYZ,
const float *  nrmXYZ,
const float *  uvST,
int  vertexCount,
const uint32_t *  indices,
int  indexCount 
)
overridevirtual

Updates mesh vertices.

实现了 eve::graphics::Graphics.

在文件 GraphicsMesh.cpp 第 350 行定义.

引用了 indexCount, indices, mesh, eve::graphics::vulkan::MeshVertex::pos, v, vertexCount , 以及 verts.

◆ updateTexture()

bool eve::graphics::vulkan::Graphics::updateTexture ( Texture *  texture,
int  width,
int  height,
const uint8_t *  rgba 
)
overridevirtual

◆ updateTextureFromResidentRgba8()

eve::Result< void > eve::graphics::vulkan::Graphics::updateTextureFromResidentRgba8 ( Texture *  texture,
const GpuResidentBufferView &  source,
int  width,
int  height 
)
overridevirtual

◆ updateTextureRegion()

eve::Result< void > eve::graphics::vulkan::Graphics::updateTextureRegion ( Texture *  texture,
int  x,
int  y,
int  width,
int  height,
std::span< const std::uint8_t >  rgba,
std::size_t  bytesPerRow = 0 
)
overridevirtual

◆ updateTextureRegions()

◆ uploadDeferredFileTexture()

bool eve::graphics::vulkan::Graphics::uploadDeferredFileTexture ( Texture *  texture,
image::ImageData *  data 
)
overridevirtual

Uploads deferred file texture.

重载 eve::graphics::Graphics .

在文件 GraphicsTexture.cpp 第 1151 行定义.

◆ waitForSharedGpuResources()

void eve::graphics::vulkan::Graphics::waitForSharedGpuResources ( )

Block until all in-flight GPU work (all frames) has completed.

在文件 Graphics.cpp 第 885 行定义.

被这些函数引用 releaseGpuParticleEmitter(), replaceMeshShaderResources() , 以及 replaceShaderFromSpv().

◆ writeGpuTimestampBegin()

void eve::graphics::vulkan::Graphics::writeGpuTimestampBegin ( )

Writes a begin timestamp into the current present command buffer.

在文件 Graphics.cpp 第 1150 行定义.

◆ writeGpuTimestampEnd()

void eve::graphics::vulkan::Graphics::writeGpuTimestampEnd ( )

Writes an end timestamp into the current present command buffer.

在文件 Graphics.cpp 第 1157 行定义.

友元及相关函数文档

◆ OffscreenCanvas

friend class OffscreenCanvas
friend

在文件 Graphics.h 第 1075 行定义.


该类的文档由以下文件生成: