mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-10 22:24:33 +00:00
Terrain baseTex support multiple formats
DDS, PNG, JPG or NONE
This commit is contained in:
parent
f2a3a1e2a6
commit
431d8a9b66
3 changed files with 44 additions and 8 deletions
|
|
@ -178,7 +178,7 @@ bool TerrainBlock::_initBaseShader()
|
|||
return true;
|
||||
}
|
||||
|
||||
void TerrainBlock::_updateBaseTexture( bool writeToCache )
|
||||
void TerrainBlock::_updateBaseTexture(bool writeToCache)
|
||||
{
|
||||
if ( !mBaseShader && !_initBaseShader() )
|
||||
return;
|
||||
|
|
@ -290,7 +290,14 @@ void TerrainBlock::_updateBaseTexture( bool writeToCache )
|
|||
GFX->endScene();
|
||||
|
||||
/// Do we cache this sucker?
|
||||
if ( writeToCache )
|
||||
if (mBaseTexFormat == NONE || !writeToCache)
|
||||
{
|
||||
// We didn't cache the result, so set the base texture
|
||||
// to the render target we updated. This should be good
|
||||
// for realtime painting cases.
|
||||
mBaseTex = blendTex;
|
||||
}
|
||||
else if (mBaseTexFormat == DDS)
|
||||
{
|
||||
String cachePath = _getBaseTexCacheFileName();
|
||||
|
||||
|
|
@ -327,10 +334,16 @@ void TerrainBlock::_updateBaseTexture( bool writeToCache )
|
|||
}
|
||||
else
|
||||
{
|
||||
// We didn't cache the result, so set the base texture
|
||||
// to the render target we updated. This should be good
|
||||
// for realtime painting cases.
|
||||
mBaseTex = blendTex;
|
||||
FileStream stream;
|
||||
if (!stream.open(_getBaseTexCacheFileName(), Torque::FS::File::Write))
|
||||
{
|
||||
mBaseTex = blendTex;
|
||||
return;
|
||||
}
|
||||
|
||||
GBitmap bitmap(blendTex->getWidth(), blendTex->getHeight(), false, GFXFormatR8G8B8);
|
||||
blendTex->copyToBmp(&bitmap);
|
||||
bitmap.writeBitmap(formatToExtension(mBaseTexFormat), stream);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue