mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-11 00:10:46 +00:00
Implement Singlepass Terrain Render
This commit is contained in:
parent
49a8c0ad36
commit
87dd7ffc4a
35 changed files with 1658 additions and 951 deletions
|
|
@ -82,6 +82,7 @@ static U32 shaderConstTypeSize(GFXShaderConstType type)
|
|||
case GFXSCT_Sampler:
|
||||
case GFXSCT_SamplerCube:
|
||||
case GFXSCT_SamplerCubeArray:
|
||||
case GFXSCT_SamplerTextureArray:
|
||||
return 4;
|
||||
case GFXSCT_Float2:
|
||||
case GFXSCT_Int2:
|
||||
|
|
@ -630,6 +631,9 @@ void GFXGLShader::initConstantDescs()
|
|||
case GL_SAMPLER_CUBE_MAP_ARRAY_ARB:
|
||||
desc.constType = GFXSCT_SamplerCubeArray;
|
||||
break;
|
||||
case GL_SAMPLER_2D_ARRAY:
|
||||
desc.constType = GFXSCT_SamplerTextureArray;
|
||||
break;
|
||||
default:
|
||||
AssertFatal(false, "GFXGLShader::initConstantDescs - unrecognized uniform type");
|
||||
// If we don't recognize the constant don't add its description.
|
||||
|
|
@ -661,7 +665,10 @@ void GFXGLShader::initHandles()
|
|||
|
||||
HandleMap::Iterator handle = mHandles.find(desc.name);
|
||||
S32 sampler = -1;
|
||||
if(desc.constType == GFXSCT_Sampler || desc.constType == GFXSCT_SamplerCube || desc.constType == GFXSCT_SamplerCubeArray)
|
||||
if(desc.constType == GFXSCT_Sampler ||
|
||||
desc.constType == GFXSCT_SamplerCube ||
|
||||
desc.constType == GFXSCT_SamplerCubeArray ||
|
||||
desc.constType == GFXSCT_SamplerTextureArray)
|
||||
{
|
||||
S32 idx = mSamplerNamesOrdered.find_next(desc.name);
|
||||
AssertFatal(idx != -1, "");
|
||||
|
|
@ -704,7 +711,11 @@ void GFXGLShader::initHandles()
|
|||
for (HandleMap::Iterator iter = mHandles.begin(); iter != mHandles.end(); ++iter)
|
||||
{
|
||||
GFXGLShaderConstHandle* handle = iter->value;
|
||||
if(handle->isValid() && (handle->getType() == GFXSCT_Sampler || handle->getType() == GFXSCT_SamplerCube || handle->getType() == GFXSCT_SamplerCubeArray))
|
||||
if(handle->isValid() &&
|
||||
(handle->getType() == GFXSCT_Sampler ||
|
||||
handle->getType() == GFXSCT_SamplerCube ||
|
||||
handle->getType() == GFXSCT_SamplerCubeArray ||
|
||||
handle->getType() == GFXSCT_SamplerTextureArray))
|
||||
{
|
||||
// Set sampler number on our program.
|
||||
glUniform1i(handle->mLocation, handle->mSamplerNum);
|
||||
|
|
@ -837,6 +848,7 @@ void GFXGLShader::setConstantsFromBuffer(GFXGLShaderConstBuffer* buffer)
|
|||
case GFXSCT_Sampler:
|
||||
case GFXSCT_SamplerCube:
|
||||
case GFXSCT_SamplerCubeArray:
|
||||
case GFXSCT_SamplerTextureArray:
|
||||
glUniform1iv(handle->mLocation, handle->mDesc.arraySize, (GLint*)(mConstBuffer + handle->mOffset));
|
||||
break;
|
||||
case GFXSCT_Int2:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue