2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 23:07:42 +00:00

backface culling support

This commit is contained in:
Jack Andersen
2017-03-10 10:38:34 -10:00
parent e698a27d1c
commit 56aacdacde
3 changed files with 15 additions and 13 deletions

2
hecl/extern/boo vendored

Submodule hecl/extern/boo updated: 5c52877549...ca20aea834

View File

@@ -362,7 +362,8 @@ struct GLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor(m_backend.m_blendSrc), boo::BlendFactor(m_backend.m_blendSrc),
boo::BlendFactor(m_backend.m_blendDst), boo::BlendFactor(m_backend.m_blendDst),
tag.getPrimType(), tag.getDepthTest(), tag.getPrimType(), tag.getDepthTest(),
tag.getDepthWrite(), tag.getBackfaceCulling()); tag.getDepthWrite(),
tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!objOut) if (!objOut)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
@@ -401,7 +402,7 @@ struct GLSLBackendFactory : IShaderBackendFactory
2, STD_BLOCKNAMES, 2, STD_BLOCKNAMES,
blendSrc, blendDst, tag.getPrimType(), blendSrc, blendDst, tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
return ret; return ret;
@@ -448,7 +449,8 @@ struct GLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendSrc : slot.srcFactor), boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendSrc : slot.srcFactor),
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendDst : slot.dstFactor), boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendDst : slot.dstFactor),
tag.getPrimType(), tag.getDepthTest(), tag.getPrimType(), tag.getDepthTest(),
tag.getDepthWrite(), tag.getBackfaceCulling()); tag.getDepthWrite(),
tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
returnFunc(ret); returnFunc(ret);
@@ -508,7 +510,7 @@ struct GLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? blendSrc : slot.srcFactor), boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? blendSrc : slot.srcFactor),
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor), boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor),
tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(), tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
returnFunc(ret); returnFunc(ret);
@@ -555,7 +557,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
&vertBlob, &fragBlob, &pipelineBlob, tag.newVertexFormat(ctx), &vertBlob, &fragBlob, &pipelineBlob, tag.newVertexFormat(ctx),
boo::BlendFactor(m_backend.m_blendSrc), boo::BlendFactor(m_backend.m_blendDst), boo::BlendFactor(m_backend.m_blendSrc), boo::BlendFactor(m_backend.m_blendDst),
tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(), tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!objOut) if (!objOut)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
@@ -633,7 +635,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
tag.newVertexFormat(ctx), tag.newVertexFormat(ctx),
blendSrc, blendDst, tag.getPrimType(), blendSrc, blendDst, tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
return ret; return ret;
@@ -680,7 +682,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ?
m_backend.m_blendDst : slot.dstFactor), m_backend.m_blendDst : slot.dstFactor),
tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(), tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
cachedSz += pipeBlob.vert.size() * sizeof(unsigned int); cachedSz += pipeBlob.vert.size() * sizeof(unsigned int);
@@ -771,7 +773,7 @@ struct SPIRVBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? blendSrc : slot.srcFactor), boo::BlendFactor((slot.srcFactor == hecl::Backend::BlendFactor::Original) ? blendSrc : slot.srcFactor),
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor), boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor),
tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(), tag.getPrimType(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
returnFunc(ret); returnFunc(ret);

View File

@@ -323,7 +323,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor(m_backend.m_blendDst), boo::BlendFactor(m_backend.m_blendDst),
tag.getPrimType(), tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!objOut) if (!objOut)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
@@ -416,7 +416,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
tag.newVertexFormat(ctx), tag.newVertexFormat(ctx),
blendSrc, blendDst, tag.getPrimType(), blendSrc, blendDst, tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
return ret; return ret;
@@ -460,7 +460,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendDst : slot.dstFactor), boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? m_backend.m_blendDst : slot.dstFactor),
tag.getPrimType(), tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
if (thisPipeBlobs.vert) if (thisPipeBlobs.vert)
@@ -558,7 +558,7 @@ struct HLSLBackendFactory : IShaderBackendFactory
boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor), boo::BlendFactor((slot.dstFactor == hecl::Backend::BlendFactor::Original) ? blendDst : slot.dstFactor),
tag.getPrimType(), tag.getPrimType(),
tag.getDepthTest(), tag.getDepthWrite(), tag.getDepthTest(), tag.getDepthWrite(),
tag.getBackfaceCulling()); tag.getBackfaceCulling() ? boo::CullMode::Backface : boo::CullMode::None);
if (!ret) if (!ret)
Log.report(logvisor::Fatal, "unable to build shader"); Log.report(logvisor::Fatal, "unable to build shader");
returnFunc(ret); returnFunc(ret);