VCiewRenderer no longer depends on the global TextContext variable. Instead it's updated when it changes.

This commit is contained in:
dfighter1985 2012-02-11 02:28:14 +01:00
parent a006d657cd
commit 6374bffe37
5 changed files with 25 additions and 6 deletions

View file

@ -83,6 +83,7 @@ void resetTextContext (const char *font, bool resetInterfaceManager)
if (resetInterfaceManager) if (resetInterfaceManager)
{ {
CInterfaceManager *im = CInterfaceManager::getInstance(); CInterfaceManager *im = CInterfaceManager::getInstance();
im->setTextContext( TextContext );
im->resetTextIndex(); im->resetTextIndex();
} }
} }

View file

@ -254,7 +254,7 @@ int CInterfaceManager::DebugTrackGroupsGetId( CInterfaceGroup *pIG )
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
CInterfaceManager::CInterfaceManager() : CInterfaceManager::CInterfaceManager() :
_ViewRenderer( Driver ) _ViewRenderer( Driver, TextContext )
{ {
_Instance = this; _Instance = this;
_DbRootNode = new CCDBNodeBranch("ROOT"); _DbRootNode = new CCDBNodeBranch("ROOT");
@ -6600,3 +6600,8 @@ bool CInterfaceManager::parseTokens(ucstring& ucstr)
ucstr = str; ucstr = str;
return true;; return true;;
} }
void CInterfaceManager::setTextContext( NL3D::UTextContext *textcontext )
{
_ViewRenderer.setTextContext( textcontext );
}

View file

@ -720,6 +720,9 @@ public:
*/ */
static bool parseTokens(ucstring& ucstr); static bool parseTokens(ucstring& ucstr);
/// Sets the current TextContext.
void setTextContext( NL3D::UTextContext *textcontext );
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
private: private:

View file

@ -30,11 +30,12 @@ using namespace NLMISC;
using namespace std; using namespace std;
using namespace NL3D; using namespace NL3D;
CViewRenderer::CViewRenderer( NL3D::UDriver *driver ) CViewRenderer::CViewRenderer( NL3D::UDriver *driver, NL3D::UTextContext *textcontext )
{ {
setup(); setup();
this->driver = driver; this->driver = driver;
this->textcontext = textcontext;
} }
CViewRenderer::~CViewRenderer() CViewRenderer::~CViewRenderer()
@ -155,7 +156,7 @@ void CViewRenderer::init()
// Init all renderBuffer // Init all renderBuffer
for(uint i=0;i<VR_NUM_LAYER;i++) for(uint i=0;i<VR_NUM_LAYER;i++)
{ {
_StringRBLayers[i]= TextContext->createRenderBuffer(); _StringRBLayers[i]= textcontext->createRenderBuffer();
} }
} }
@ -200,6 +201,11 @@ NL3D::UDriver* CViewRenderer::getDriver(){
return driver; return driver;
} }
void CViewRenderer::setTextContext(NL3D::UTextContext *textcontext)
{
this->textcontext = textcontext;
}
// *************************************************************************** // ***************************************************************************
void CViewRenderer::SImage::setupQuadUV(bool flipv, uint8 rot, CQuadColorUV &dest) void CViewRenderer::SImage::setupQuadUV(bool flipv, uint8 rot, CQuadColorUV &dest)
{ {
@ -1211,9 +1217,9 @@ void CViewRenderer::flush ()
// **** Display Computed Strings of this layer // **** Display Computed Strings of this layer
if (_WorldSpaceTransformation) if (_WorldSpaceTransformation)
TextContext->flushRenderBufferUnProjected(_StringRBLayers[layerId], false); textcontext->flushRenderBufferUnProjected(_StringRBLayers[layerId], false);
else else
TextContext->flushRenderBuffer(_StringRBLayers[layerId]); textcontext->flushRenderBuffer(_StringRBLayers[layerId]);
// flushed // flushed
_EmptyLayer[layerId]= true; _EmptyLayer[layerId]= true;

View file

@ -103,7 +103,7 @@ public:
sint32 _TextureId; sint32 _TextureId;
}; };
CViewRenderer( NL3D::UDriver *driver ); CViewRenderer( NL3D::UDriver *driver, NL3D::UTextContext *textcontext );
~CViewRenderer (); ~CViewRenderer ();
@ -122,6 +122,9 @@ public:
/// Retrieves the 3d driver we are using /// Retrieves the 3d driver we are using
NL3D::UDriver* getDriver(); NL3D::UDriver* getDriver();
/// Sets the current TextContext.
void setTextContext( NL3D::UTextContext *textcontext );
/* /*
* setClipWindow : set the current clipping window * setClipWindow : set the current clipping window
* (this window do not inherit properties from parent or whatever) * (this window do not inherit properties from parent or whatever)
@ -561,6 +564,7 @@ private:
NL3D::UDriver *driver; NL3D::UDriver *driver;
NL3D::UTextContext *textcontext;
}; };