载入中...
搜索中...
未找到
GraphicsShaderSurface.cpp
浏览该文件的文档.
7eve::Result<void> Graphics::configureMeshShaderSurface(Shader& shader, BlendMode blend, bool depthWrite,
9 return rebuildMeshShaderSurface(shader, blend, depthWrite, doubleSided, shader.meshRasterState());
11eve::Result<void> Graphics::configureMeshShaderRaster(Shader& shader, const MeshShaderRasterState& state) {
16eve::Result<void> Graphics::rebuildMeshShaderSurface(Shader& shader, BlendMode blend, bool depthWrite, bool doubleSided,
20 if (found == ownedGpuShaders.end() || !(*found)->isMesh3D || (*found)->isHair3D || shader.isXray() ||
23 eve::DiagnosticCode::InvalidArgument, "Expected an owned mesh shader outside frame submission"));
25 if (shader.meshBlend == blend && shader.meshDepthWrite == depthWrite && shader.meshDoubleSided == doubleSided &&
26 current.depthCompare == raster.depthCompare && current.depthBiasConstant == raster.depthBiasConstant &&
27 current.depthBiasSlope == raster.depthBiasSlope && current.colorWriteMask == raster.colorWriteMask)
35 prepared[1] = createMesh3DStylePipeline(shader.vertexSpirv(), shader.fragmentSpirv(), gpu.pipelineLayout,
38 prepared[2] = createMesh3DStylePipeline(shader.vertexSpirv(), shader.fragmentSpirv(), gpu.pipelineLayout,
45 return eve::Result<void>::failure(eve::Diagnostic::error(eve::DiagnosticCode::Failed, e.what()));
47 for (auto pipeline : {gpu.mesh3dPipeline, gpu.mesh3dOffscreenPipeline, gpu.mesh3dHdrOffscreenPipeline})
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
void waitForSharedGpuResources()
Block until all in-flight GPU work (all frames) has completed.
Definition Graphics.cpp:885
eve::Result< void > configureMeshShaderSurface(Shader &shader, BlendMode blend, bool depthWrite, bool doubleSided) override
Configure mesh shader surface.
Definition GraphicsShaderSurface.cpp:7
eve::Result< void > configureMeshShaderRaster(Shader &shader, const MeshShaderRasterState &state) override
Configure mesh shader raster.
Definition GraphicsShaderSurface.cpp:11
Definition VulkanSequence.h:9
Result< void > validateMeshShaderRasterState(const MeshShaderRasterState &state)
Validate a borrowed value without touching graphics state; safe on any thread.
Definition MeshShaderRasterState.cpp:5
@ InvalidArgument
@ Failed
Value snapshot of custom mesh rasterization state, independent of blending/culling.
Definition MeshShaderRasterState.h:13
std::uint8_t colorWriteMask
Definition MeshShaderRasterState.h:17
MeshDepthCompare depthCompare
Definition MeshShaderRasterState.h:14
float depthBiasConstant
Definition MeshShaderRasterState.h:15
float depthBiasSlope
Definition MeshShaderRasterState.h:16