NL3D::UDriver Class Reference

#include <u_driver.h>

Inheritance diagram for NL3D::UDriver:

NL3D::CDriverUser

Detailed Description

Game Interface for window Driver, first object to create. From UDriver, you can create Scene, and render basic primitives (slow!!)

All function calls are invalid before init() is called!!

NB: there is ONE FontManager per UDriver.

Author:
Lionel Berenguier

Nevrax France

Date:
2001

Definition at line 94 of file u_driver.h.

Matrix context for Interface 2D/3D.

virtual CFrustum getFrustum ()=0
virtual CMatrix getModelMatrix ()=0
virtual CScissor getScissor ()=0
virtual CMatrix getViewMatrix ()=0
virtual CViewport getViewport ()=0
virtual void setFrustum (const CFrustum &frust)=0
virtual void setMatrixMode2D (const CFrustum &frust)=0
void setMatrixMode2D11 ()
 Tool function: same as setMatrixMode2D(), using a CFrustum(0,1,0,1,-1,1,false).

void setMatrixMode2D43 ()
 Tool function: same as setMatrixMode2D(), using a CFrustum(0,4/3,0,1,-1,1,false).

virtual void setMatrixMode3D (UCamera &camera)=0
virtual void setModelMatrix (const CMatrix &mat)=0
virtual void setScissor (const CScissor &)=0
virtual void setViewMatrix (const CMatrix &mat)=0
virtual void setViewport (const CViewport &)=0

Public Types

enum  TMessageBoxIcon {
  noIcon = 0, handIcon, questionIcon, exclamationIcon,
  asteriskIcon, warningIcon, errorIcon, informationIcon,
  stopIcon, iconCount
}
enum  TMessageBoxId {
  okId = 0, yesId, noId, abortId,
  retryId, cancelId, ignoreId, idCount
}
 Message Box enums. More...

enum  TMessageBoxType {
  okType = 0, okCancelType, yesNoType, abortRetryIgnoreType,
  yesNoCancelType, retryCancelType, typeCount
}
typedef std::vector< CModeTModeList
enum  TPolygonMode { Filled = 0, Line, Point }
 Polygon Mode. More...


Public Member Functions

Window / driver management.
virtual bool activate (void)=0
 Before rendering via a driver in a thread, must activate() (per thread).

virtual TModeList enumModes ()=0
 Enum All Fullscreen modes.

virtual void * getDisplay ()=0
 Return an OS dependent window handle. Under Win32, it is a HWND.

virtual bool getModes (std::vector< CMode > &modes)=0
 Before rendering via a driver in a thread, must activate() (per thread).

virtual bool isActive ()=0
 Return true if driver is still active. Return false else. If he user close the window, must return false.

virtual void release ()=0
 Release the window. All components are released (Texture, materials, scene, textcontexts).

virtual bool setDisplay (const CMode &mode, bool show=true)=0
virtual bool setMode (const CMode &mode)=0
 Before rendering via a driver in a thread, must activate() (per thread).

Buffers.
virtual void clearBuffers (CRGBA col=CRGBA(255, 255, 255, 255))=0
 This clear the buffers (ALL the buffer :) ).

virtual void clearRGBABuffer (CRGBA col=CRGBA(255, 255, 255, 255))=0
 This clear only the RGBA back buffer.

virtual void clearZBuffer ()=0
 This clear only the Zbuffer.

virtual uint getSwapVBLInterval ()=0
 get the number of VBL wait when a swapBuffers() is issued. 0 means no synchronisation to the VBL

virtual void setSwapVBLInterval (uint interval)=0
virtual void swapBuffers ()=0
 This swap the back and front buffer (ALL the buffer :) ).

Misc.
virtual U3dMouseListenercreate3dMouseListener ()=0
virtual void delete3dMouseListener (U3dMouseListener *listener)=0
virtual void forceDXTCCompression (bool dxtcComp)=0
virtual void forceTextureResize (uint divisor)=0
virtual TPolygonMode getPolygonMode ()=0
virtual bool setMonitorColorProperties (const CMonitorColorProperties &properties)=0
virtual void setPolygonMode (TPolygonMode mode)=0
virtual TMessageBoxId systemMessageBox (const char *message, const char *title, TMessageBoxType type=okType, TMessageBoxIcon icon=noIcon)=0
Components gestion for Interface 2D/3D.
virtual UMaterialcreateMaterial ()=0
 Create a new Material, to be filled by user.

virtual UTextContextcreateTextContext (const std::string fontFileName, const std::string fontExFileName="")=0
 create a new TextContext, for a given font.

virtual UTextureFilecreateTextureFile (const std::string &file)=0
virtual UTextureRawcreateTextureRaw ()=0
 Create a new Raw texture, to be filled by user.

virtual void deleteMaterial (UMaterial *mat)=0
 Delete a Material.

virtual void deleteTextContext (UTextContext *textContext)=0
 delete a TextContext.

virtual void deleteTextureFile (UTextureFile *textfile)=0
 Delete a texture file. This one will be really deleted in memory when no material point to it.

virtual void deleteTextureRaw (UTextureRaw *textraw)=0
 Delete a Raw texture. This one will be really deleted in memory when no material point to it.

virtual std::string getFontManagerCacheInformation () const=0
 get cahce information.

virtual void setFontManagerMaxMemory (uint maxMem)=0
 Set the maxMemory used for the FontManager.

Scene gestion.
virtual UScenecreateScene (bool bSmallScene)=0
 Create a new scene.

virtual void deleteScene (UScene *scene)=0
 Delete a scene.

Disable Hardware Feature
virtual void disableHardwareTextureShader ()=0
virtual void disableHardwareVertexArrayAGP ()=0
virtual void disableHardwareVertexProgram ()=0
Tools for Interface 2D.
virtual void drawBitmap (float x, float y, float width, float height, class UTexture &texture, bool blend=true, CRGBA col=CRGBA(255, 255, 255, 255))=0
 Draw a bitmap 2D. Warning: this is slow...

virtual void drawLine (float x0, float y0, float x1, float y1, CRGBA col=CRGBA(255, 255, 255, 255))=0
 Draw a line in 2D. Warning: this is slow...

virtual void drawQuad (float xcenter, float ycenter, float radius, CRGBA col)=0
 Draw a Quad in 2D. Warning: this is slow...

virtual void drawQuad (float x0, float y0, float x1, float y1, CRGBA col)=0
 Draw a Quad in 2D. Warning: this is slow...

virtual void drawTriangle (float x0, float y0, float x1, float y1, float x2, float y2, CRGBA col)=0
 Draw a Triangle in 2D. Warning: this is slow...

virtual void drawWiredQuad (float xcenter, float ycenter, float radius, CRGBA col)=0
 Draw a Quad in 2D. Warning: this is slow...

virtual void drawWiredQuad (float x0, float y0, float x1, float y1, CRGBA col)=0
 Draw a Quad in 2D. Warning: this is slow...

Interface 2D/3D.
virtual void drawLine (const NLMISC::CLineColorUV &tri, UMaterial &mat)=0
 Draw the Line, taking color from primitive. With UV for texture.

virtual void drawLine (const NLMISC::CLineUV &tri, UMaterial &mat)=0
 Draw the Line, taking color from material. With UV for texture.

virtual void drawLine (const NLMISC::CLineColor &tri, UMaterial &mat)=0
 Draw the Line, taking color from primitive.

virtual void drawLine (const NLMISC::CLine &tri, UMaterial &mat)=0
 Draw the Line, taking color from material.

virtual void drawQuad (const NLMISC::CQuadColorUV &tri, UMaterial &mat)=0
 Draw the Quad, taking color from primitive. With UV for texture.

virtual void drawQuad (const NLMISC::CQuadUV &tri, UMaterial &mat)=0
 Draw the Quad, taking color from material. With UV for texture.

virtual void drawQuad (const NLMISC::CQuadColor &tri, UMaterial &mat)=0
 Draw the Quad, taking color from primitive.

virtual void drawQuad (const NLMISC::CQuad &tri, UMaterial &mat)=0
 Draw the Quad, taking color from material.

virtual void drawQuads (const NLMISC::CQuadColorUV2 *quads, uint32 nbQuads, UMaterial &mat)=0
 Draw the Line, taking color from primitive. With UV for texture.

virtual void drawQuads (const NLMISC::CQuadColorUV *qs, uint32 nbq, UMaterial &mat)=0
 Draw the Line, taking color from primitive. With UV for texture.

virtual void drawQuads (const std::vector< NLMISC::CQuadColorUV2 > &quad, UMaterial &mat)=0
 Draw the Line, taking color from primitive. With UV for texture.

virtual void drawQuads (const std::vector< NLMISC::CQuadColorUV > &quad, UMaterial &mat)=0
 Draw the Line, taking color from primitive. With UV for texture.

virtual void drawTriangle (const NLMISC::CTriangleColorUV &tri, UMaterial &mat)=0
 Draw the Triangle, taking color from primitive. With UV for texture.

virtual void drawTriangle (const NLMISC::CTriangleUV &tri, UMaterial &mat)=0
 Draw the Triangle, taking color from material. With UV for texture.

virtual void drawTriangle (const NLMISC::CTriangleColor &tri, UMaterial &mat)=0
 Draw the Triangle, taking color from primitive.

virtual void drawTriangle (const NLMISC::CTriangle &tri, UMaterial &mat)=0
 Draw the Triangle, taking color from material.

Fog support.
virtual void enableFog (bool enable)=0
virtual bool fogEnabled ()=0
virtual void setupFog (float start, float end, CRGBA color)=0
 setup fog parameters. fog must enabled to see result. start and end are in [0,1] range.

Light support.
virtual void enableLight (uint8 num, bool enable=true)=0
virtual void setAmbientColor (CRGBA color)=0
virtual void setLight (uint8 num, const ULight &light)=0
Mouse / Keyboard / Gamedevices
virtual NLMISC::IKeyboardDeviceenableLowLevelKeyboard (bool enable)=0
virtual NLMISC::IMouseDeviceenableLowLevelMouse (bool enable, bool hardware)=0
virtual uint getDoubleClickDelay (bool hardwareMouse)=0
virtual NLMISC::IInputDeviceManagergetLowLevelInputDeviceManager ()=0
virtual void setCapture (bool b)=0
virtual void setMousePos (float x, float y)=0
 x and y must be between 0.0 and 1.0

virtual void showCursor (bool b)=0
Profiling.
virtual void enableUsedTextureMemorySum (bool enable=true)=0
virtual void endProfileVBHardLock (std::vector< std::string > &result)=0
virtual uint32 getUsedTextureMemory () const=0
virtual uint32 profileAllocatedTextureMemory ()=0
virtual void profileRenderedPrimitives (CPrimitiveProfile &pIn, CPrimitiveProfile &pOut)=0
virtual uint32 profileSetupedMaterials () const=0
virtual uint32 profileSetupedModelMatrix () const=0
virtual void profileVBHardAllocation (std::vector< std::string > &result)=0
virtual void startProfileVBHardLock ()=0
Driver information/Queries
virtual bool fillBuffer (CBitmap &bitmap)=0
virtual uint32 getAvailableVertexAGPMemory ()=0
virtual uint32 getAvailableVertexVRAMMemory ()=0
virtual void getBuffer (CBitmap &bitmap)=0
virtual void getBufferPart (CBitmap &bitmap, NLMISC::CRect &rect)=0
virtual const char * getDriverInformation ()=0
virtual uint32 getImplementationVersion () const=0
virtual sint getNbTextureStages ()=0
 Get the number of texture stage avaliable, for multitexturing (Normal material shaders). Valid only after setDisplay().

virtual const char * getVideocardInformation ()=0
virtual uint getWindowHeight ()=0
 Get the height of the window.

virtual void getWindowPos (uint32 &x, uint32 &y)=0
 Get the x and y coord of the windows always (0,0) in fullscreen.

virtual void getWindowSize (uint32 &width, uint32 &height)=0
 Get the width and the height of the window.

virtual uint getWindowWidth ()=0
 Get the width of the window.

virtual void getZBuffer (std::vector< float > &zbuffer)=0
virtual void getZBufferPart (std::vector< float > &zbuffer, NLMISC::CRect &rect)=0
Async Texture loading mgt (see UInstance)
virtual uint getLastAsyncTextureSizeGot () const=0
 get what the system really allows

virtual uint getTotalAsyncTextureSizeAsked () const=0
 get the async texture Size asked (ie maybe bigger than MaxTotalTextureSize).

virtual void loadHLSBank (const std::string &fileName)=0
virtual void setupAsyncTextureLod (uint baseLevel, uint maxLevel)=0
virtual void setupAsyncTextureMaxUploadPerFrame (uint maxup)=0
 Setup max texture upload in driver per updateAsyncTexture() call.

virtual void setupMaxHLSColoringPerFrame (uint maxCol)=0
 Setup max texture HLS Coloring per update() call (in bytes). Default to 20K.

virtual void setupMaxTotalAsyncTextureSize (uint maxText)=0
 Setup max total texture size allowed. Default is 10Mo.

virtual void updateAsyncTexture ()=0
Shape Bank
virtual UShapeBankgetShapeBank ()=0
Object
 UDriver ()
virtual ~UDriver ()

Static Public Member Functions

UDrivercreateDriver (uint windowIcon=0)
void purgeMemory ()

Data Fields

NLMISC::CEventListenerAsync AsyncListener
 The AsyncListener of this driver. Init after setDisplay()!!

NLMISC::CEventServer EventServer
 The EventServer of this driver. Init after setDisplay()!!


Member Typedef Documentation

typedef std::vector<CMode> NL3D::UDriver::TModeList
 

Definition at line 126 of file u_driver.h.

Referenced by NL3D::CDriverUser::enumModes().


Member Enumeration Documentation

enum NL3D::UDriver::TMessageBoxIcon
 

Enumeration values:
noIcon 
handIcon 
questionIcon 
exclamationIcon 
asteriskIcon 
warningIcon 
errorIcon 
informationIcon 
stopIcon 
iconCount 

Definition at line 132 of file u_driver.h.

enum NL3D::UDriver::TMessageBoxId
 

Message Box enums.

Enumeration values:
okId 
yesId 
noId 
abortId 
retryId 
cancelId 
ignoreId 
idCount 

Definition at line 130 of file u_driver.h.

enum NL3D::UDriver::TMessageBoxType
 

Enumeration values:
okType 
okCancelType 
yesNoType 
abortRetryIgnoreType 
yesNoCancelType 
retryCancelType 
typeCount 

Definition at line 131 of file u_driver.h.

enum NL3D::UDriver::TPolygonMode
 

Polygon Mode.

Enumeration values:
Filled 
Line 
Point 

Definition at line 135 of file u_driver.h.

00135 { Filled=0, Line, Point };


Constructor & Destructor Documentation

NL3D::UDriver::UDriver  ) 
 

NL3D::UDriver::~UDriver  )  [virtual]
 

Definition at line 77 of file driver_user.cpp.

References NL3D_MEM_DRIVER.

00078 {
00079         NL3D_MEM_DRIVER
00080 }


Member Function Documentation

virtual bool NL3D::UDriver::activate void   )  [pure virtual]
 

Before rendering via a driver in a thread, must activate() (per thread).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::clearBuffers CRGBA  col = CRGBA(255, 255, 255, 255)  )  [pure virtual]
 

This clear the buffers (ALL the buffer :) ).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::clearRGBABuffer CRGBA  col = CRGBA(255, 255, 255, 255)  )  [pure virtual]
 

This clear only the RGBA back buffer.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::clearZBuffer  )  [pure virtual]
 

This clear only the Zbuffer.

Implemented in NL3D::CDriverUser.

virtual U3dMouseListener* NL3D::UDriver::create3dMouseListener  )  [pure virtual]
 

Create a 3d mouse listener

Returns:
a 3d mouse listener.

Implemented in NL3D::CDriverUser.

UDriver * NL3D::UDriver::createDriver uint  windowIcon = 0  )  [static]
 

This is the static function which build a UDriver, the root for all 3D functions.

Definition at line 98 of file driver_user.cpp.

References NL3D_MEM_DRIVER, and uint.

00099 {
00100         NL3D_MEM_DRIVER
00101         return new CDriverUser (windowIcon);
00102 }

virtual UMaterial* NL3D::UDriver::createMaterial  )  [pure virtual]
 

Create a new Material, to be filled by user.

Implemented in NL3D::CDriverUser.

virtual UScene* NL3D::UDriver::createScene bool  bSmallScene  )  [pure virtual]
 

Create a new scene.

Implemented in NL3D::CDriverUser.

virtual UTextContext* NL3D::UDriver::createTextContext const std::string  fontFileName,
const std::string  fontExFileName = ""
[pure virtual]
 

create a new TextContext, for a given font.

Implemented in NL3D::CDriverUser.

virtual UTextureFile* NL3D::UDriver::createTextureFile const std::string &  file  )  [pure virtual]
 

Create a new texture file, searching in CPath. NB: by default a textureFile created with this method has a setAllowDegradation() at false.

Parameters:
file filename, local to CPath paths.

Implemented in NL3D::CDriverUser.

virtual UTextureRaw* NL3D::UDriver::createTextureRaw  )  [pure virtual]
 

Create a new Raw texture, to be filled by user.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::delete3dMouseListener U3dMouseListener listener  )  [pure virtual]
 

Delete a 3d mouse listener

Parameters:
listener a 3d mouse listener.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::deleteMaterial UMaterial mat  )  [pure virtual]
 

Delete a Material.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::deleteScene UScene scene  )  [pure virtual]
 

Delete a scene.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::deleteTextContext UTextContext textContext  )  [pure virtual]
 

delete a TextContext.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::deleteTextureFile UTextureFile textfile  )  [pure virtual]
 

Delete a texture file. This one will be really deleted in memory when no material point to it.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::deleteTextureRaw UTextureRaw textraw  )  [pure virtual]
 

Delete a Raw texture. This one will be really deleted in memory when no material point to it.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::disableHardwareTextureShader  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::disableHardwareVertexArrayAGP  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::disableHardwareVertexProgram  )  [pure virtual]
 

Disable some Feature that may be supported by the Hardware Call before setDisplay() to work properly

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawBitmap float  x,
float  y,
float  width,
float  height,
class UTexture texture,
bool  blend = true,
CRGBA  col = CRGBA(255, 255, 255, 255)
[pure virtual]
 

Draw a bitmap 2D. Warning: this is slow...

For all those function, setMatrixMode2D*() should have been called (else strange results!!).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawLine float  x0,
float  y0,
float  x1,
float  y1,
CRGBA  col = CRGBA(255, 255, 255, 255)
[pure virtual]
 

Draw a line in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawLine const NLMISC::CLineColorUV tri,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawLine const NLMISC::CLineUV tri,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from material. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawLine const NLMISC::CLineColor tri,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawLine const NLMISC::CLine tri,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from material.

All of those render primitives are unlit! You must use UScene to render lighted meshes. NB: If you set a texture to your material, the primitives are textured, even if no Uvs are provided.
NB: All rendering are done in current viewport / current matrix context.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad float  xcenter,
float  ycenter,
float  radius,
CRGBA  col
[pure virtual]
 

Draw a Quad in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad float  x0,
float  y0,
float  x1,
float  y1,
CRGBA  col
[pure virtual]
 

Draw a Quad in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad const NLMISC::CQuadColorUV tri,
UMaterial mat
[pure virtual]
 

Draw the Quad, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad const NLMISC::CQuadUV tri,
UMaterial mat
[pure virtual]
 

Draw the Quad, taking color from material. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad const NLMISC::CQuadColor tri,
UMaterial mat
[pure virtual]
 

Draw the Quad, taking color from primitive.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuad const NLMISC::CQuad tri,
UMaterial mat
[pure virtual]
 

Draw the Quad, taking color from material.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuads const NLMISC::CQuadColorUV2 quads,
uint32  nbQuads,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuads const NLMISC::CQuadColorUV qs,
uint32  nbq,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuads const std::vector< NLMISC::CQuadColorUV2 > &  quad,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawQuads const std::vector< NLMISC::CQuadColorUV > &  quad,
UMaterial mat
[pure virtual]
 

Draw the Line, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawTriangle float  x0,
float  y0,
float  x1,
float  y1,
float  x2,
float  y2,
CRGBA  col
[pure virtual]
 

Draw a Triangle in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawTriangle const NLMISC::CTriangleColorUV tri,
UMaterial mat
[pure virtual]
 

Draw the Triangle, taking color from primitive. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawTriangle const NLMISC::CTriangleUV tri,
UMaterial mat
[pure virtual]
 

Draw the Triangle, taking color from material. With UV for texture.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawTriangle const NLMISC::CTriangleColor tri,
UMaterial mat
[pure virtual]
 

Draw the Triangle, taking color from primitive.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawTriangle const NLMISC::CTriangle tri,
UMaterial mat
[pure virtual]
 

Draw the Triangle, taking color from material.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawWiredQuad float  xcenter,
float  ycenter,
float  radius,
CRGBA  col
[pure virtual]
 

Draw a Quad in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::drawWiredQuad float  x0,
float  y0,
float  x1,
float  y1,
CRGBA  col
[pure virtual]
 

Draw a Quad in 2D. Warning: this is slow...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::enableFog bool  enable  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::enableLight uint8  num,
bool  enable = true
[pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual NLMISC::IKeyboardDevice* NL3D::UDriver::enableLowLevelKeyboard bool  enable  )  [pure virtual]
 

Enable / disable a low level keyboard. This returns a interface to some parameters when it is supported, or NULL otherwise. The interface pointer is valid as long as the low level keyboard is enabled. A call to disable the keyboard returns NULL, and restore the default keyboard behaviour.

Implemented in NL3D::CDriverUser.

virtual NLMISC::IMouseDevice* NL3D::UDriver::enableLowLevelMouse bool  enable,
bool  hardware
[pure virtual]
 

Enable / disable low level mouse. This allow to take advantage of some options (speed of the mouse, automatic wrapping) It returns a interface to these parameters when it is supported, or NULL otherwise The interface pointer is valid as long as the low level mouse is enabled. A call to disable the mouse returns NULL, and restore the default mouse behaviour NB : - In this mode the mouse cursor isn't drawn.

  • Calls to showCursor have no effects
  • Calls to setCapture have no effects

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::enableUsedTextureMemorySum bool  enable = true  )  [pure virtual]
 

Enable the sum of texture memory used since last swapBuffers() call. To retrieve the memory used call getUsedTextureMemory().

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::endProfileVBHardLock std::vector< std::string > &  result  )  [pure virtual]
 

If the driver support it, stop profile VBHard locks, and "print" result No-Op if already profiling NB: The results are the Locks in Chronogical time (since last swapBuffers). Since multiple frame are summed, an "*" is marked againts the VBHard name to show if it was not always this one (ptr test and not name test) in the chronogical order. NB: if the driver does not support VBHard or VBHard profiling (like ATI VBHard), result is empty. NB: ???? string is displayed if the VBHard has no name or if was just deleted.

Implemented in NL3D::CDriverUser.

virtual TModeList NL3D::UDriver::enumModes  )  [pure virtual]
 

Enum All Fullscreen modes.

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::fillBuffer CBitmap bitmap  )  [pure virtual]
 

fill the RGBA back buffer

Parameters:
bitmap will be written in the buffer. no-op if bad size.
Returns:
true if success

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::fogEnabled  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::forceDXTCCompression bool  dxtcComp  )  [pure virtual]
 

if true force all the uncompressed RGBA 32 bits and RGBA 24 bits texture to be DXTC5 compressed. Default is false. NB: this is done only on TextureFile, with format Automatic

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::forceTextureResize uint  divisor  )  [pure virtual]
 

if !=1, force mostly all the textures (but TextureFonts lightmaps, interfaces etc..) to be divided by Divisor (2, 4, 8...) Default is 1. NB: this is done only on TextureFile

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::getAvailableVertexAGPMemory  )  [pure virtual]
 

Return the amount of AGP memory allocated by initVertexArrayRange() to store vertices.

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::getAvailableVertexVRAMMemory  )  [pure virtual]
 

Return the amount of video memory allocated by initVertexArrayRange() to store vertices.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getBuffer CBitmap bitmap  )  [pure virtual]
 

get the RGBA back buffer

Parameters:
bitmap the buffer will be written in this bitmap

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getBufferPart CBitmap bitmap,
NLMISC::CRect rect
[pure virtual]
 

get a part of the RGBA back buffer NB: 0,0 is the bottom left corner of the screen.

Parameters:
bitmap the buffer will be written in this bitmap
rect the in/out (wanted/clipped) part of Color buffer to retrieve.

Implemented in NL3D::CDriverUser.

virtual void* NL3D::UDriver::getDisplay  )  [pure virtual]
 

Return an OS dependent window handle. Under Win32, it is a HWND.

Implemented in NL3D::CDriverUser.

virtual uint NL3D::UDriver::getDoubleClickDelay bool  hardwareMouse  )  [pure virtual]
 

Enable / disable a low level keyboard. This returns a interface to some parameters when it is supported, or NULL otherwise. The interface pointer is valid as long as the low level keyboard is enabled. A call to disable the keyboard returns NULL, and restore the default keyboard behaviour.

Implemented in NL3D::CDriverUser.

virtual const char* NL3D::UDriver::getDriverInformation  )  [pure virtual]
 

Get driver informations. get the nel name of the driver (ex: "Opengl 1.2 NeL Driver")

Implemented in NL3D::CDriverUser.

virtual std::string NL3D::UDriver::getFontManagerCacheInformation  )  const [pure virtual]
 

get cahce information.

Implemented in NL3D::CDriverUser.

virtual CFrustum NL3D::UDriver::getFrustum  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::getImplementationVersion  )  const [pure virtual]
 

Get the driver version. Not the same than interface version. Incremented at each implementation change.

See also:
InterfaceVersion

Implemented in NL3D::CDriverUser.

virtual uint NL3D::UDriver::getLastAsyncTextureSizeGot  )  const [pure virtual]
 

get what the system really allows

Implemented in NL3D::CDriverUser.

virtual NLMISC::IInputDeviceManager* NL3D::UDriver::getLowLevelInputDeviceManager  )  [pure virtual]
 

Check wether there is a low level device manager available, and get its interface. Return NULL if not available. From this interface you can deal with mouse and keyboard as above, but you can also manage game devices (joysticks, joypads ...)

Implemented in NL3D::CDriverUser.

virtual CMatrix NL3D::UDriver::getModelMatrix  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::getModes std::vector< CMode > &  modes  )  [pure virtual]
 

Before rendering via a driver in a thread, must activate() (per thread).

Implemented in NL3D::CDriverUser.

virtual sint NL3D::UDriver::getNbTextureStages  )  [pure virtual]
 

Get the number of texture stage avaliable, for multitexturing (Normal material shaders). Valid only after setDisplay().

Implemented in NL3D::CDriverUser.

virtual TPolygonMode NL3D::UDriver::getPolygonMode  )  [pure virtual]
 

Get the global polygon mode.

Parameters:
polygon mode choose in this driver.
See also:
setPolygonMode(), TPolygonMode

Implemented in NL3D::CDriverUser.

virtual CScissor NL3D::UDriver::getScissor  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual UShapeBank* NL3D::UDriver::getShapeBank  )  [pure virtual]
 

Get the global shape bank. The shape bank handles all the shape caches.

See also:
UShapeBank

Implemented in NL3D::CDriverUser.

virtual uint NL3D::UDriver::getSwapVBLInterval  )  [pure virtual]
 

get the number of VBL wait when a swapBuffers() is issued. 0 means no synchronisation to the VBL

Implemented in NL3D::CDriverUser.

virtual uint NL3D::UDriver::getTotalAsyncTextureSizeAsked  )  const [pure virtual]
 

get the async texture Size asked (ie maybe bigger than MaxTotalTextureSize).

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::getUsedTextureMemory  )  const [pure virtual]
 

Return the amount of texture video memory used since last swapBuffers() call. Before use this method, you should enable the sum with enableUsedTextureMemorySum().

Implemented in NL3D::CDriverUser.

virtual const char* NL3D::UDriver::getVideocardInformation  )  [pure virtual]
 

Get videocard informations. get the official name of the driver

Implemented in NL3D::CDriverUser.

virtual CMatrix NL3D::UDriver::getViewMatrix  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual CViewport NL3D::UDriver::getViewport  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual uint NL3D::UDriver::getWindowHeight  )  [pure virtual]
 

Get the height of the window.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getWindowPos uint32 x,
uint32 y
[pure virtual]
 

Get the x and y coord of the windows always (0,0) in fullscreen.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getWindowSize uint32 width,
uint32 height
[pure virtual]
 

Get the width and the height of the window.

Implemented in NL3D::CDriverUser.

Referenced by NL3D::UTextContext::CStringInfo::convertTo01Size(), and NL3D::UTextContext::CStringInfo::convertToPixelSize().

virtual uint NL3D::UDriver::getWindowWidth  )  [pure virtual]
 

Get the width of the window.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getZBuffer std::vector< float > &  zbuffer  )  [pure virtual]
 

get the ZBuffer (back buffer).

Parameters:
zbuffer the returned array of Z. size of getWindowSize() .

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::getZBufferPart std::vector< float > &  zbuffer,
NLMISC::CRect rect
[pure virtual]
 

get a part of the ZBuffer (back buffer). NB: 0,0 is the bottom left corner of the screen.

Parameters:
zbuffer the returned array of Z. size of rec.Width*rec.Height.
rect the in/out (wanted/clipped) part of ZBuffer to retrieve.

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::isActive  )  [pure virtual]
 

Return true if driver is still active. Return false else. If he user close the window, must return false.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::loadHLSBank const std::string &  fileName  )  [pure virtual]
 

Load a .hlsBank, add it to the HLSManager of the AsyncTextureManager. Use CPath::lookup. throw EPathNotFound if error

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::profileAllocatedTextureMemory  )  [pure virtual]
 

Return the amount of Texture memory requested. taking mipmap, compression, texture format, etc... into account. NB: because of GeForce*, RGB888 is considered to be 32 bits. So it may be false for others cards :).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::profileRenderedPrimitives CPrimitiveProfile pIn,
CPrimitiveProfile pOut
[pure virtual]
 

Get the number of primitives rendered from the last swapBuffers() call.

Parameters:
pIn the number of requested rendered primitive.
pOut the number of effective rendered primitive. pOut==pIn if no multi-pass material is used (Lightmap, Specular ...).

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::profileSetupedMaterials  )  const [pure virtual]
 

Get the number of material setuped from the last swapBuffers() call.

Implemented in NL3D::CDriverUser.

virtual uint32 NL3D::UDriver::profileSetupedModelMatrix  )  const [pure virtual]
 

Get the number of matrix setuped from the last swapBuffers() call.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::profileVBHardAllocation std::vector< std::string > &  result  )  [pure virtual]
 

display VBhards allocated

Implemented in NL3D::CDriverUser.

void NL3D::UDriver::purgeMemory  )  [static]
 

Purge static memory

Definition at line 106 of file driver_user.cpp.

References NL3D::GetWaterPoolManager(), NL3D_MEM_DRIVER, and NL3D::CWaterPoolManager::reset().

00107 {
00108         NL3D_MEM_DRIVER
00109         CPointLight::purge ();
00110         GetWaterPoolManager().reset();
00111         contReset(CLandscapeGlobals::PassTriArray);
00112 }

virtual void NL3D::UDriver::release  )  [pure virtual]
 

Release the window. All components are released (Texture, materials, scene, textcontexts).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setAmbientColor CRGBA  color  )  [pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setCapture bool  b  )  [pure virtual]
 

If true, capture the mouse to force it to stay under the window. NB : If a low level mouse is used, it does nothing

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::setDisplay const CMode mode,
bool  show = true
[pure virtual]
 

create the window. call activate(). Return true if mode activated, false if it failed.

Parameters:
show show or hide the window in window mode.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setFontManagerMaxMemory uint  maxMem  )  [pure virtual]
 

Set the maxMemory used for the FontManager.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setFrustum const CFrustum frust  )  [pure virtual]
 

Set the active Frustum for rendering.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setLight uint8  num,
const ULight light
[pure virtual]
 

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setMatrixMode2D const CFrustum frust  )  [pure virtual]
 

Tool function: Setup frustum/viewmatrix/modelmatrix for 2D. ModelMatrix is setup to identity. ViewMatrix is setup so that (x,y) of vectors maps to x,y screen.

Implemented in NL3D::CDriverUser.

Referenced by setMatrixMode2D11(), and setMatrixMode2D43().

void NL3D::UDriver::setMatrixMode2D11  ) 
 

Tool function: same as setMatrixMode2D(), using a CFrustum(0,1,0,1,-1,1,false).

Definition at line 84 of file driver_user.cpp.

References NL3D_MEM_DRIVER, and setMatrixMode2D().

Referenced by NL3D::CDriverUser::setDisplay().

00085 {
00086         NL3D_MEM_DRIVER
00087         setMatrixMode2D(CFrustum(0.0f,1.0f,0.0f,1.0f,-1.0f,1.0f,false));
00088 }

void NL3D::UDriver::setMatrixMode2D43  ) 
 

Tool function: same as setMatrixMode2D(), using a CFrustum(0,4/3,0,1,-1,1,false).

Definition at line 90 of file driver_user.cpp.

References NL3D_MEM_DRIVER, and setMatrixMode2D().

00091 {
00092         NL3D_MEM_DRIVER
00093         setMatrixMode2D(CFrustum(0.0f,4.0f/3.0f,0.0f,1.0f,-1.0f,1.0f,false));
00094 }

virtual void NL3D::UDriver::setMatrixMode3D UCamera camera  )  [pure virtual]
 

Tool function: Setup frustum/viewmatrix/modelmatrix for 3D, using parameters of a UCamera. ModelMatrix setuped to identity. ViewMatrix setuped to the inverse of camera 's LocalMatrix. Frustum setuped to UCamera frustum.

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::setMode const CMode mode  )  [pure virtual]
 

Before rendering via a driver in a thread, must activate() (per thread).

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setModelMatrix const CMatrix mat  )  [pure virtual]
 

Set the active ModelMatrix for rendering. NB: UScene ignore this function (use camera parameters instead).

Implemented in NL3D::CDriverUser.

virtual bool NL3D::UDriver::setMonitorColorProperties const CMonitorColorProperties properties  )  [pure virtual]
 

Setup monitor color properties.

Return false if setup failed.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setMousePos float  x,
float  y
[pure virtual]
 

x and y must be between 0.0 and 1.0

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setPolygonMode TPolygonMode  mode  )  [pure virtual]
 

Set the global polygon mode. Can be filled, line or point. The implementation driver must call IDriver::setPolygonMode and active this mode.

Parameters:
polygon mode choose in this driver.
See also:
getPolygonMode(), TPolygonMode

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setScissor const CScissor  )  [pure virtual]
 

Set the active scissor for rendering. Default to fullscreen.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setSwapVBLInterval uint  interval  )  [pure virtual]
 

set the number of VBL wait when a swapBuffers() is issued. 0 means no synchronisation to the VBL Default depends of the 3D driver setup. Values >1 may be clamped to 1 by the driver.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setupAsyncTextureLod uint  baseLevel,
uint  maxLevel
[pure virtual]
 

setup the mipMap levels. When the texture is first added, it is loaded skipping the baseLevel first mipmap During time, furhter mipmap are loaded, according to instance position etc... maxLevel tells where to stop. If 0, the texture will finally be entirely uploaded. Default is 3,1.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setupAsyncTextureMaxUploadPerFrame uint  maxup  )  [pure virtual]
 

Setup max texture upload in driver per updateAsyncTexture() call.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setupFog float  start,
float  end,
CRGBA  color
[pure virtual]
 

setup fog parameters. fog must enabled to see result. start and end are in [0,1] range.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setupMaxHLSColoringPerFrame uint  maxCol  )  [pure virtual]
 

Setup max texture HLS Coloring per update() call (in bytes). Default to 20K.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setupMaxTotalAsyncTextureSize uint  maxText  )  [pure virtual]
 

Setup max total texture size allowed. Default is 10Mo.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setViewMatrix const CMatrix mat  )  [pure virtual]
 

Set the active ViewMatrix for rendering. NB: this is the view matrix, which is the inverse of camera matrix.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::setViewport const CViewport  )  [pure virtual]
 

Set the active viewport for rendering. Default to fullscreen.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::showCursor bool  b  )  [pure virtual]
 

show cursor if b is true, or hide it if b is false NB: This has no effects if a low level mouse is used.

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::startProfileVBHardLock  )  [pure virtual]
 

If the driver support it, enable profile VBHard locks. No-Op if already profiling

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::swapBuffers  )  [pure virtual]
 

This swap the back and front buffer (ALL the buffer :) ).

Implemented in NL3D::CDriverUser.

virtual TMessageBoxId NL3D::UDriver::systemMessageBox const char *  message,
const char *  title,
TMessageBoxType  type = okType,
TMessageBoxIcon  icon = noIcon
[pure virtual]
 

Output a system message box and print a message with an icon. This method can be call even if the driver is not initialized. This method is used to return internal driver problem when string can't be displayed in the driver window. If the driver can't open a messageBox, it should not override this method and let the IDriver class manage it with the ASCII console.

Parameters:
message This is the message to display in the message box.
title This is the title of the message box.
type This is the type of the message box, ie number of button and label of buttons.
icon This is the icon of the message box should use like warning, error etc...

Implemented in NL3D::CDriverUser.

virtual void NL3D::UDriver::updateAsyncTexture  )  [pure virtual]
 

update the manager. New loaded texture are uploaded. Instances are updated to know if all their pending textures have been uploaded.

Implemented in NL3D::CDriverUser.


Field Documentation

NLMISC::CEventListenerAsync NL3D::UDriver::AsyncListener
 

The AsyncListener of this driver. Init after setDisplay()!!

Definition at line 142 of file u_driver.h.

NLMISC::CEventServer NL3D::UDriver::EventServer
 

The EventServer of this driver. Init after setDisplay()!!

Definition at line 140 of file u_driver.h.


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 08:44:20 2004 for NeL by doxygen 1.3.6