# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::UDriver Class Reference

Game Interface for window Driver, first object to create. More...

#include <u_driver.h>

Inheritance diagram for NL3D::UDriver:

NL3D::CDriverUser List of all members.

Public Types

typedef std::vector< CModeTModeList
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
}
enum  TMessageBoxIcon {
  noIcon = 0, handIcon, questionIcon, exclamationIcon,
  asteriskIcon, warningIcon, errorIcon, informationIcon,
  stopIcon, iconCount
}
enum  TPolygonMode { Filled = 0, Line, Point }
 Polygon Mode. More...


Public Methods

Object
 UDriver ()
virtual ~UDriver ()
Disable Hardware Feature
virtual void disableHardwareVertexProgram ()=0
virtual void disableHardwareVertexArrayAGP ()=0
virtual void disableHardwareTextureShader ()=0
Window / driver management.
virtual TModeList enumModes ()=0
 Enum All Fullscreen modes. More...

virtual void setDisplay (const CMode &mode)=0
 create the window. call activate(). More...

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

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

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

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

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

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

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

Fog support.
virtual bool fogEnabled ()=0
virtual void enableFog (bool enable)=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. More...

Light support.
virtual void setLight (uint8 num, const ULight &light)=0
virtual void enableLight (uint8 num, bool enable=true)=0
virtual void setAmbientColor (CRGBA color)=0
Scene gestion.
virtual UScenecreateScene ()=0
 Create a new scene. More...

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

Components gestion for Interface 2D/3D.
virtual UTextContextcreateTextContext (const std::string fontFileName, const std::string fontExFileName="")=0
 create a new TextContext, for a given font. More...

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

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

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

virtual UTextureFilecreateTextureFile (const std::string &file)=0
 Create a new texture file, searching in CPath. More...

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

virtual UTextureRawcreateTextureRaw ()=0
 Create a new Raw texture, to be filled by user. More...

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

virtual UMaterialcreateMaterial ()=0
 Create a new Material, to be filled by user. More...

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

Matrix context for Interface 2D/3D.
virtual void setScissor (const CScissor &)=0
 Set the active scissor for rendering. More...

virtual CScissor getScissor ()=0
virtual void setViewport (const CViewport &)=0
 Set the active viewport for rendering. More...

virtual CViewport getViewport ()=0
virtual void setFrustum (const CFrustum &frust)=0
 Set the active Frustum for rendering. More...

virtual CFrustum getFrustum ()=0
virtual void setViewMatrix (const CMatrix &mat)=0
 Set the active ViewMatrix for rendering. More...

virtual CMatrix getViewMatrix ()=0
virtual void setModelMatrix (const CMatrix &mat)=0
 Set the active ModelMatrix for rendering. More...

virtual CMatrix getModelMatrix ()=0
virtual void setMatrixMode2D (const CFrustum &frust)=0
 Tool function: Setup frustum/viewmatrix/modelmatrix for 2D. More...

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

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

virtual void setMatrixMode3D (UCamera &camera)=0
 Tool function: Setup frustum/viewmatrix/modelmatrix for 3D, using parameters of a UCamera. More...

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

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

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

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

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

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

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

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

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

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

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

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

virtual void drawQuads (const std::vector< NLMISC::CQuadColorUV > &tri, UMaterial &mat)=0
virtual void drawQuads (const NLMISC::CQuadColorUV *qs, uint32 nbq, UMaterial &mat)=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... More...

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... More...

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... More...

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

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

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

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

Driver information/Queries
virtual uint32 getImplementationVersion () const=0
 Get the driver version. More...

virtual const char * getDriverInformation ()=0
 Get driver informations. More...

virtual const char * getVideocardInformation ()=0
 Get videocard informations. More...

virtual sint getNbTextureStages ()=0
 Get the number of texture stage avaliable, for multitexturing (Normal material shaders). Valid only after setDisplay(). More...

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

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

virtual uint getWindowHeight ()=0
 Get the height of the window. More...

virtual void getBuffer (CBitmap &bitmap)=0
 get the RGBA back buffer. More...

virtual void getZBuffer (std::vector< float > &zbuffer)=0
 get the ZBuffer (back buffer). More...

virtual void getBufferPart (CBitmap &bitmap, NLMISC::CRect &rect)=0
 get a part of the RGBA back buffer NB: 0,0 is the bottom left corner of the screen. More...

virtual void getZBufferPart (std::vector< float > &zbuffer, NLMISC::CRect &rect)=0
 get a part of the ZBuffer (back buffer). More...

virtual bool fillBuffer (CBitmap &bitmap)=0
 fill the RGBA back buffer. More...

Mouse / Keyboard / Gamedevices
virtual NLMISC::IMouseDeviceenableLowLevelMouse (bool enable)=0
 Enable / disable low level mouse. More...

virtual NLMISC::IKeyboardDeviceenableLowLevelKeyboard (bool enable)=0
 Enable / disable a low level keyboard. More...

virtual NLMISC::IInputDeviceManagergetLowLevelInputDeviceManager ()=0
 Check wether there is a low level device manager available, and get its interface. More...

virtual void showCursor (bool b)=0
 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. More...

virtual void setMousePos (float x, float y)=0
 x and y must be between 0.0 and 1.0. More...

virtual void setCapture (bool b)=0
 If true, capture the mouse to force it to stay under the window. More...

Misc.
virtual TMessageBoxId systemMessageBox (const char *message, const char *title, TMessageBoxType type=okType, TMessageBoxIcon icon=noIcon)=0
 Output a system message box and print a message with an icon. More...

virtual void setPolygonMode (TPolygonMode mode)=0
 Set the global polygon mode. More...

virtual TPolygonMode getPolygonMode ()=0
 Get the global polygon mode. More...

virtual U3dMouseListenercreate3dMouseListener ()=0
 Create a 3d mouse listener. More...

virtual void delete3dMouseListener (U3dMouseListener *listener)=0
 Delete a 3d mouse listener. More...

virtual void forceDXTCCompression (bool dxtcComp)=0
 if true force all the uncompressed RGBA 32 bits and RGBA 24 bits texture to be DXTC5 compressed. More...

virtual void forceTextureResize (uint divisor)=0
 if !=1, force mostly all the textures (but TextureFonts lightmaps, interfaces etc..) to be divided by Divisor (2, 4, 8...) Default is 1. More...

virtual bool setMonitorColorProperties (const CMonitorColorProperties &properties)=0
 Setup monitor color properties. More...

Shape Bank
virtual UShapeBankgetShapeBank ()=0
 Get the global shape bank. More...

Profiling.
virtual void profileRenderedPrimitives (CPrimitiveProfile &pIn, CPrimitiveProfile &pOut)=0
 Get the number of primitives rendered from the last swapBuffers() call. More...

virtual uint32 profileAllocatedTextureMemory ()=0
 Return the amount of Texture memory requested. More...

virtual uint32 profileSetupedMaterials () const=0
 Get the number of material setuped from the last swapBuffers() call. More...

virtual uint32 profileSetupedModelMatrix () const=0
 Get the number of matrix setuped from the last swapBuffers() call. More...

virtual void enableUsedTextureMemorySum (bool enable=true)=0
 Enable the sum of texture memory used since last swapBuffers() call. More...

virtual uint32 getUsedTextureMemory () const=0
 Return the amount of texture video memory used since last swapBuffers() call. More...

Async Texture loading mgt (see UInstance)
virtual void setupAsyncTextureLod (uint baseLevel, uint maxLevel)=0
 setup the mipMap levels. More...

virtual void setupAsyncTextureMaxUploadPerFrame (uint maxup)=0
 Setup max texture upload in driver per updateAsyncTexture() call. More...

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

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

virtual void updateAsyncTexture ()=0
 update the manager. More...

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

virtual uint getLastAsyncTextureSizeGot () const=0
 get what the system really allows. More...

virtual void loadHLSBank (const std::string &fileName)=0
 Load a .hlsBank, add it to the HLSManager of the AsyncTextureManager. More...


Static Public Methods

UDriver * createDriver ()
 This is the static function which build a UDriver, the root for all 3D functions. More...


Public Attributes

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

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


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.


Member Typedef Documentation

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

Definition at line 123 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 129 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 127 of file u_driver.h.

enum NL3D::UDriver::TMessageBoxType
 

Enumeration values:
okType 
okCancelType 
yesNoType 
abortRetryIgnoreType 
yesNoCancelType 
retryCancelType 
typeCount 

Definition at line 128 of file u_driver.h.

enum NL3D::UDriver::TPolygonMode
 

Polygon Mode.

Enumeration values:
Filled 
Line 
Point 

Definition at line 132 of file u_driver.h.


Constructor & Destructor Documentation

NL3D::UDriver::UDriver  
 

Definition at line 69 of file driver_user.cpp.

References NL3D_MEM_DRIVER.

NL3D::UDriver::~UDriver   [virtual]
 

Definition at line 74 of file driver_user.cpp.

References NL3D_MEM_DRIVER.


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   [static]
 

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

Definition at line 95 of file driver_user.cpp.

References NL3D_MEM_DRIVER.

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   [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]
 

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...

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.

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::CQuadColorUV   qs,
uint32    nbq,
UMaterial   mat
[pure virtual]
 

Implemented in NL3D::CDriverUser.

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

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 [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 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 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 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 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::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::getWindowSize uint32   width,
uint32   height
[pure virtual]
 

Get the width and the height of the window.

Implemented in NL3D::CDriverUser.

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::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 void NL3D::UDriver::setDisplay const CMode   mode [pure virtual]
 

create the window. call activate().

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 81 of file driver_user.cpp.

References NL3D_MEM_DRIVER, and setMatrixMode2D.

Referenced by NL3D::CDriverUser::setDisplay.

void NL3D::UDriver::setMatrixMode2D43  
 

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

Definition at line 87 of file driver_user.cpp.

References NL3D_MEM_DRIVER, and setMatrixMode2D.

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 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::setupAsyncTextureLod uint    baseLevel,
uint    maxLevel
[pure virtual]
 

setup the mipMap levels.

\baseLevel When the texture is first added, it is loaded skipping the baseLevel first mipmap \maxLevel 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::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.


Member Data Documentation

NLMISC::CEventListenerAsync NL3D::UDriver::AsyncListener
 

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

Definition at line 139 of file u_driver.h.

Referenced by NL3D::CDriverUser::release, and NL3D::CDriverUser::setDisplay.

NLMISC::CEventServer NL3D::UDriver::EventServer
 

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

Definition at line 137 of file u_driver.h.

Referenced by NL3D::CDriverUser::create3dMouseListener, NL3D::CDriverUser::delete3dMouseListener, NL3D::CDriverUser::release, and NL3D::CDriverUser::setDisplay.


The documentation for this class was generated from the following files: