Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# IdeDriver Class Reference

`#include <deDriver.hpp>`

Inheritance diagram for IdeDriver:

[legend]
List of all members.

## Public Types
enum | Types { DRIVER_INVALID = -1, DRIVER_DIRECT3D8 = 0, DRIVER_DIRECT3D9 = 2, DRIVER_OPENGL = 1, DRIVER_COUNT, DRIVER_FORCE_32BIT = 0x7FFFFFFF }
| different driver types More...
enum | BPP { BPP_UNKNOWN = 0, BPP_X1R5G5B5, BPP_A1R5G5B5, BPP_A4R4G4B4, BPP_X4R4G4B4, BPP_A8, BPP_R3G3B2, BPP_A8R3G3B2, BPP_A2B10G10R10, BPP_G16R16, BPP_R5G6B5, BPP_R8G8B8, BPP_A8R8G8B8, BPP_X8R8G8B8, BPP_P8, BPP_A8P8, BPP_L8, BPP_A8L8, BPP_A4L4, BPP_V8U8, BPP_Q8W8V8U8, BPP_V16U16, BPP_W11V11U10, BPP_L6V5U5, BPP_X8L8V8U8, BPP_A2W10V10U10, BPP_UYVY, BPP_YUY2, BPP_DXT1, BPP_DXT2, BPP_DXT3, BPP_DXT4, BPP_DXT5, BPP_R16F, BPP_G16R16F, BPP_A16B16G16R16F, BPP_R32F, BPP_G32R32F, BPP_A32B32G32R32F, BPP_COUNT, BPP_FORCE_32BIT = 0x7FFFFFFF }
| types of color formats, indicating number of bits per channel More...
enum | ZPP { ZPP_UNKNOWN = 0, ZPP_D16, ZPP_D15S1, ZPP_D24, ZPP_D24S4, ZPP_D24S8, ZPP_D32, ZPP_COUNT, ZPP_FORCE_32BIT = 0x7FFFFFFF }
| possible z-buffer formats More...
enum | RenderState { RENDER_ZENABLE = 0, RENDER_ZENABLEUSEW, RENDER_ZWRITESENABLE, RENDER_DEPTHFUNCTION, RENDER_DEPTHBIAS, RENDER_FILLMODE, RENDER_SHADEMODE, RENDER_COLORMASK, RENDER_ALPHATESTENABLE, RENDER_ALPHAREF, RENDER_ALPHAFUNCTION, RENDER_ALPHABLENDENABLE, RENDER_SOURCEBLEND, RENDER_DESTBLEND, RENDER_TEXTUREFACTOR, RENDER_CULLMODE, RENDER_FSAAENABLE, RENDER_FSAAMASK, RENDER_FOGENABLE, RENDER_FOGSTART, RENDER_FOGEND, RENDER_FOGCOLOR, RENDER_CLIPPINGENABLE, RENDER_SWVERTEXPROCESS, RENDER_HWLIGHTINGENABLE, RENDER_AMBIENTLIGHT, RENDER_DITHERENABLE, RENDER_SPECULARENABLE, RENDER_SPECULARPERSPECTIVE, RENDER_PERVERTEXCOLOR, RENDER_STENCILENABLE, RENDER_TWOSIDEDSTENCILENABLE, RENDER_STENCILREF, RENDER_STENCILMASK, RENDER_STENCILWRITEMASK, RENDER_STENCILFUNCTION, RENDER_STENCILFAIL, RENDER_STENCILZFAIL, RENDER_STENCILPASS, RENDER_CCW_STENCILFUNCTION, RENDER_CCW_STENCILFAIL, RENDER_CCW_STENCILZFAIL, RENDER_CCW_STENCILPASS, RENDER_COUNT, RENDER_FORCE_32BIT = 0x7FFFFFFF }
enum | RenderFillMode { FILL_POINT = 0, FILL_WIREFRAME, FILL_SOLID, FILL_COUNT, FILL_FORCE_32BIT = 0x7FFFFFFF }
| list of fill modes for RENDER_FILLMODE More...
enum | RenderCullMode { CULL_NONE = 0, CULL_CW, CULL_CCW, CULL_COUNT, CULL_FORCE_32BIT = 0x7FFFFFFF }
| list of culling modes for RENDER_CULLMODE More...
enum | RenderShadeMode { SHADE_FLAT = 0, SHADE_GOURAUD, SHADE_COUNT, SHADE_FORCE_32BIT = 0x7FFFFFFF }
| list of shading modes for RENDER_SHADEMODE More...
enum | RenderCmpFunc { COMPARE_NEVER = 0, COMPARE_LESS, COMPARE_EQUAL, COMPARE_LESSEQUAL, COMPARE_GREATER, COMPARE_GREATEREQUAL, COMPARE_NOTEQUAL, COMPARE_ALWAYS, COMPARE_COUNT, COMPARE_FORCE_32BIT = 0x7FFFFFFF }
| function for comparing values when performing per-pixel tests More...
enum | RenderStencilOp { STENCIL_KEEP = 0, STENCIL_ZERO, STENCIL_REPLACE, STENCIL_INCRWRAP, STENCIL_DECRWRAP, STENCIL_INVERT, STENCIL_INCR, STENCIL_DECR, STENCIL_COUNT, STENCIL_FORCE_32BIT = 0x7FFFFFFF }
enum | RenderBlend { BLEND_ZERO = 0, BLEND_ONE, BLEND_SOURCE, BLEND_INVERSESOURCE, BLEND_SOURCEALPHA, BLEND_INVERSESOURCEALPHA, BLEND_DEST, BLEND_INVERSEDEST, BLEND_DESTALPHA, BLEND_INVERSEDESTALPHA, BLEND_SOURCEALPHASAT, BLEND_COUNT, BLEND_FORCE_32BIT = 0x7FFFFFFF }
| blending operation to perform More...
enum | Resource { RESOURCE_UNKNOWN = -1, RESOURCE_DISPLAY, RESOURCE_DISPLAYWINDOWED, RESOURCE_TEXTURE, RESOURCE_RENDERTARGET, RESOURCE_DEPTHSTENCIL, RESOURCE_FSAA, RESOURCE_FSAAWINDOWED, RESOURCE_COUNT, RESOURCE_FORCE_32BIT = 0x7FFFFFFF }
| resource types to feed into ValidFormat More...
enum | QualityFlag { QUALITY_UNKNOWN = -1, QUALITY_ALLOW_TEXTURE_MANGLING, QUALITY_ALLOW_INVALID_TEXTURES, QUALITY_FLAG_COUNT, QUALITY_FORCE_32BIT = 0x7FFFFFFF }
| settings for how the engine should allow quality compromises More...
## Public Member Functions
virtual long | Release ()=0
| Delete the object.
virtual deBoolean | Init (HWND WindowHandle)=0
virtual deBoolean | SetDisplay (deDisplay *Display)=0
virtual deBoolean | Reset (deDisplay *Display=(0))=0
virtual const deDisplay * | GetDisplay () const=0
| Get a pointer to the driver's internally-held display struct.
virtual deBoolean | GetCurrentDisplay (long Adapter, deDisplay *Display) const=0
virtual deBoolean | GetDisplayMode (long Adapter, long Mode, deDisplay *Display) const=0
virtual const deDriverCaps * | GetCaps (long Adapter) const=0
| Fill a deDriverCaps structure with an adapter's device capabilities.
virtual deRect | UpdateWindowRect ()=0
| Update the driver's knowledge of the client-window rect.
virtual deRect | GetDisplayRect () const=0
| Get the driver's internally-held client-window rect.
virtual long | GetAdapterCount () const=0
| Get the number of adapters supported under this driver.
virtual long | GetModeCount (long Adapter) const=0
| Get the number of modes for a particular adapter.
virtual deBoolean | WindowedAllowed (long Adapter) const=0
| Test whether windowed mode is allowed on a particular adapter.
virtual deBoolean | ValidFormat (long Adapter, Resource ResourceType, BPP BPPType, ZPP ZPPType, BPP FrontBuffer, long ExtraFlag=0) const=0
| Test for a valid format for various resource types.
virtual long | BitDepth (BPP BPPType) const=0
| Get the bit-depth of a particular color format.
virtual long | BitDepth (ZPP ZPPType) const=0
| Get the bit-depth of a particular z-buffer format.
virtual long | StencilDepth (ZPP ZPPType) const=0
| Get the bit-depth devoted to stencil channel in z-buffer format.
virtual deBoolean | HasStencil (ZPP ZPPType) const=0
| Test whether a particular z-buffer format supports stenciling.
virtual deBoolean | AddVertexBuffer (IdeVertexBuffer *Vertex)=0
| Add a vertex buffer to the driver.
virtual deBoolean | RemoveVertexBuffer (IdeVertexBuffer *Vertex)=0
| Remove a vertex buffer from the driver.
virtual deBoolean | UpdateVertexBuffer (IdeVertexBuffer *Vertex)=0
| Update a vertex buffer so the driver's internal data matches it.
virtual deBoolean | AddShader (IdeShader *Shader)=0
virtual deBoolean | SetShader (IdeShader *Shader)=0
virtual deBoolean | RemoveShader (IdeShader *Shader)=0
virtual deBoolean | BeginFrame ()=0
| Call before rendering anything.
virtual deBoolean | EndFrame ()=0
| Finish the render and update the front-buffer.
virtual deBoolean | ClearFrame (deARGB Color, deBoolean ClearTarget=(DE_TRUE), deBoolean ClearZBuffer=(DE_TRUE), deBoolean ClearStencil=(DE_TRUE))=0
| Clear the frame with a particular color.
virtual deBoolean | Render (IdeVertexBuffer *VBuffer, long IndexOffset, IdeVertexBuffer *IndexOverride=(0))=0
| Render the selected Vertex Buffer to the back-buffer.
virtual deBoolean | SetViewport (long X, long Y, long Width, long Height, deFloat MinZ, deFloat MaxZ)=0
| Set the screen-space viewport.
virtual deBoolean | SetDepthRange (deFloat MinZ, deFloat MaxZ)=0
virtual deBoolean | SetFOVClipping (deFloat FOV, deFloat Aspect, deFloat ClipNear, deFloat ClipFar)=0
| Set up a perspective view transformation.
virtual deBoolean | SetOrthoClipping (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert=(DE_FALSE))=0
| Set up an orthographic (parallel projection) view transformation.
virtual deBoolean | SetFOVClippingSubRect (deFloat FOVY, deFloat Aspect, deFloat ClipNear, deFloat ClipFar, deRect SubRect)=0
| Set up a perspective view transformation with a sub-rect specified in the [0,1] range.
virtual deBoolean | SetFOVClippingSubRectFloat (deFloat FOVY, deFloat Aspect, deFloat ClipNear, deFloat ClipFar, deFloatRect SubRect)=0
virtual deBoolean | SetOrthoClippingSubRect (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert, deRect SubRect)=0
| Set up an orthographic (parallel projection) view transformation with a sub-rect specified in the [0,1] range.
virtual deBoolean | SetOrthoClippingSubRectFloat (deFloat Width, deFloat Height, deFloat ClipNear, deFloat ClipFar, deBoolean Invert, deFloatRect SubRect)=0
virtual deBoolean | SetScissorRect (deRect ScissorRect)=0
virtual deBoolean | SetCameraTransform (deTransformInfo *M)=0
| Set the camera transform (position and orientation).
virtual deBoolean | SetWorldTransform (deTransformInfo *Mat)=0
| Set the world transform (to take things from "object space" to "world space").
virtual deBoolean | SetTextureTransform (long StageNum, deTransformInfo *Mat)=0
| Set the texture transform for a particular stage.
virtual deBoolean | AddBitmap (IdeBitmap *Bitmap)=0
| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target.
virtual deBoolean | AddBitmapProxy (IdeBitmapProxy *BitmapProxy)=0
| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target.
virtual deBoolean | RemoveBitmap (IdeBitmap *Bitmap)=0
| Removes a bitmap from a driver by deleting the internal driver texture.
virtual deBoolean | RenderTo (IdeBitmap *pBitmap, long CubeMapFace=0)=0
virtual deBoolean | ScreenShot (IdeBitmap *&pBitmap, deBoolean GrabWindow=(DE_TRUE))=0
virtual deBoolean | GetVideoTexture (IdeBitmap *pBitmap, long CubeMapFace=0)=0
virtual unsigned long | GetRenderState (RenderState State)=0
| Get current value of the State passed in.
virtual deBoolean | SetRenderState (const IdeRenderState *State)=0
| Set a class-based render-state (texture, material, or light).
virtual deBoolean | SetRenderState (RenderState State, unsigned long Value)=0
| Set a value-based render-state.
virtual deBoolean | EnableLight (long LightID, deBoolean Enable)=0
virtual deBoolean | DisableAllLights ()=0
| Disable all fixed-function lights.
virtual unsigned long | GetQualityFlag (QualityFlag Flag)=0
| Get the status of a particular quality flag.
virtual deBoolean | SetQualityFlag (QualityFlag Flag, unsigned long Value)=0
| Set the status of a particular quality flag.
virtual IdeDriver::Types | GetType () const=0
| Get the type of driver this is.
virtual deDriverInfo * | GetInfo () const=0
| Get some information about the driver.
virtual long | GetCount ()=0
virtual void | LogInfo (char *Data,...)=0
| Log text to the driver's log file.
virtual deDriverStats * | GetDriverStats ()=0
| Get a pointer to the driver's internal statistics structure.
virtual void | ResetDriverStats ()=0
| Reset the driver's internal statistics structure to all zeroes.
## Protected Member Functions
virtual | ~IdeDriver ()

## Detailed Description

The base class that every driver is derived from. The driver is a generic interface between the engine or application and the specific hardware API being used - usually Direct3D or OpenGL. Through this interface, various rendering states are set, resources are exposed to the video hardware, and rendering of geometric objects takes place. Relevant details about the video hardware itself can be queried, allowing the engine or an application to appropriately allocate resources and choose render states. IdeDriver is the final stopping point for data from the engine or application before it's shipped off to the hardware, so it does some error and redundancy checking when setting states and resources. An application should generally not interface directly with IdeDriver, instead using the IdeRender interface to handle things in an established manner.

## Member Enumeration Documentation

enum IdeDriver::BPP

  | types of color formats, indicating number of bits per channel Enumeration values:
  BPP_UNKNOWN | unknown the possible bits
  BPP_X1R5G5B5 | 16bit rgb, 5 bits for r, g, b
  BPP_A1R5G5B5 | 16bit argb, 1 bit for a, 5 bits for r, g, b
  BPP_A4R4G4B4 | 16bit argb, 4 bits for a, r, g, b
  BPP_X4R4G4B4 | 16bit rgb, 4 bits for r, g, b
  BPP_A8 | 8bit alpha
  BPP_R3G3B2 | 8bit rgb, 3 bits for r, g, 2 bits for b
  BPP_A8R3G3B2 | 16bit argb, 8 bits for a, 3 bits for r, g, 2 bits for b
  BPP_A2B10G10R10 | 32bit abgr, 2 bits for a, 10 bits for b, g, r
  BPP_G16R16 | 32bit rg, 16 bits for g, r
  BPP_R5G6B5 | 16bit rgb, 5 bits for r, b, 6 bits for g
  BPP_R8G8B8 | 24bit rgb, 8 bits for r, g, b
  BPP_A8R8G8B8 | 32bit argb, 8 bits for a, r, g, b
  BPP_X8R8G8B8 | 32bit rgb, 8 bits for r, g, b
  BPP_P8 | 8bit color indexed
  BPP_A8P8 | 8bit color index, 8bit alph
  BPP_L8 | 8bit luminance
  BPP_A8L8 | 16bit luminance with alpha 8 bits for a, l
  BPP_A4L4 | 8bit luminance with alpha, 4 bits for a, l
  BPP_V8U8 | 16bit bumpmap, 8 bits for v, u
  BPP_Q8W8V8U8 | 32bit bumpmap, 8 bits for q, w, v, u
  BPP_V16U16 | 32bit bumpmap, 16 bits for u, v
  BPP_W11V11U10 | 32bit bumpmap, 11 bits for w, v, 10 bits for u
  BPP_L6V5U5 | 16bit bumpmap with luminance, 6 bits for l, 5 bits for v, u
  BPP_X8L8V8U8 | 32bit bumpmap with luminance, 8 bits for l, v, u
  BPP_A2W10V10U10 | 32bit bumpmap with alpha, 2 bits for a, 10 bits for w, v, u
  BPP_UYVY | UYVY format.
  BPP_YUY2 | YUY2 format.
  BPP_DXT1 | DXT texture compression format.
  BPP_DXT2 | DXT texture compression format.
  BPP_DXT3 | DXT texture compression format.
  BPP_DXT4 | DXT texture compression format.
  BPP_DXT5 | DXT texture compression format.
  BPP_R16F | 16-bpc single channel floating point format
  BPP_G16R16F | 16-bpc double channel floating point format
  BPP_A16B16G16R16F | 16-bpc ABGR floating point format
  BPP_R32F | 32-bpc single channel floating point format
  BPP_G32R32F | 32-bpc double channel floating point format
  BPP_A32B32G32R32F | 32-bpc ABGR floating point format
  BPP_COUNT |
  BPP_FORCE_32BIT |

enum IdeDriver::QualityFlag

  | settings for how the engine should allow quality compromises Enumeration values:
  QUALITY_UNKNOWN |
  QUALITY_ALLOW_TEXTURE_MANGLING | allow the engine to resize and adjust bitdepth of textures. boolean value.
  QUALITY_ALLOW_INVALID_TEXTURES | engine will complain but allow invalid (bitdepth or size) textures to be created. boolean value.
  QUALITY_FLAG_COUNT |
  QUALITY_FORCE_32BIT |

enum IdeDriver::RenderBlend

  | blending operation to perform Enumeration values:
  BLEND_ZERO | never overwrite
  BLEND_ONE | always overwrite
  BLEND_SOURCE | blend with source
  BLEND_INVERSESOURCE | blend with inverse source
  BLEND_SOURCEALPHA | blend with source alpha
  BLEND_INVERSESOURCEALPHA | blend with inverse source alpha
  BLEND_DEST | blend with destination
  BLEND_INVERSEDEST | blend with inverse destination alpha
  BLEND_DESTALPHA | blend with destination alpha
  BLEND_INVERSEDESTALPHA | blend with inverse destination alpha
  BLEND_SOURCEALPHASAT | blend with source alpha saturation
  BLEND_COUNT |
  BLEND_FORCE_32BIT |

enum IdeDriver::RenderCmpFunc

  | function for comparing values when performing per-pixel tests Enumeration values:
  COMPARE_NEVER | never use pixel
  COMPARE_LESS | use pixel if value is less than current
  COMPARE_EQUAL | use pixel if equal value
  COMPARE_LESSEQUAL | use pixel if less than or equal to current (default depth comparison)
  COMPARE_GREATER | use pixel if greater than current
  COMPARE_GREATEREQUAL | use pixel if greater than or equal to current
  COMPARE_NOTEQUAL | use pixel if not equal to current
  COMPARE_ALWAYS | always use pixel (default stencil comparison, default alpha comparison)
  COMPARE_COUNT |
  COMPARE_FORCE_32BIT |

enum IdeDriver::RenderCullMode

  | list of culling modes for RENDER_CULLMODE Enumeration values:
  CULL_NONE | no culling
  CULL_CW | cull backfaces with clockwise vertex winding
  CULL_CCW | cull backfaces with counter-clockwise vertex winding
  CULL_COUNT |
  CULL_FORCE_32BIT |

enum IdeDriver::RenderFillMode

  | list of fill modes for RENDER_FILLMODE Enumeration values:
  FILL_POINT | just show points
  FILL_WIREFRAME | show a wireframe view
  FILL_SOLID | show everything in solid (default behavior, can still render lines)
  FILL_COUNT |
  FILL_FORCE_32BIT |

enum IdeDriver::RenderShadeMode

  | list of shading modes for RENDER_SHADEMODE Enumeration values:
  SHADE_FLAT | flat shading
  SHADE_GOURAUD | gouraud shading
  SHADE_COUNT |
  SHADE_FORCE_32BIT |

enum IdeDriver::RenderState

  | list of renderstates that can be changed. specify deTRUE or deFALSE as the 2nd parameter to SetRenderState unless otherwise noted Enumeration values:
  RENDER_ZENABLE | enable z buffer for depth testing
  RENDER_ZENABLEUSEW | enable w buffer for depth testing
  RENDER_ZWRITESENABLE | enable z-buffer writes
  RENDER_DEPTHFUNCTION | type of depth compare to do (2nd param: RenderCmpFunc)
  RENDER_DEPTHBIAS | bias to apply when coplanar faces are rendered. higher is closer.
  RENDER_FILLMODE | type of fill mode (2nd param: RenderFillMode)
  RENDER_SHADEMODE | type of shading (2nd param: RenderShadeMode)
  RENDER_COLORMASK | mask for color channels (2nd param: deARGB with zero or non-zero in each channel)
  RENDER_ALPHATESTENABLE | enable alpha testing on tri's
  RENDER_ALPHAREF | reference alpha value to test against (2nd param: DWORD value)
  RENDER_ALPHAFUNCTION | type of alpha compare to do (2nd param: RenderCmpFunc)
  RENDER_ALPHABLENDENABLE | enable alpha blending
  RENDER_SOURCEBLEND | type of blending on source (2nd param: RenderBlend)
  RENDER_DESTBLEND | type of blending on dest (2nd param: RenderBlend)
  RENDER_TEXTUREFACTOR | color to be used on multi-tex blending (2nd param: deARGB color)
  RENDER_CULLMODE | type of culling (2nd param: RenderCullMode)
  RENDER_FSAAENABLE | enable full-scene anti-aliasing
  RENDER_FSAAMASK | set the mask for FSAA (example: 0x05)
  RENDER_FOGENABLE | enable fogging (0 = off, 1 = depth-based, 2 = range-based)
  RENDER_FOGSTART | start of fog as float, *((long *)&FogStart) to pass
  RENDER_FOGEND | end of fog as float, *((long *)&FogStart) to pass
  RENDER_FOGCOLOR | color of fod (2nd param: deARGB color)
  RENDER_CLIPPINGENABLE | enable clipping
  RENDER_SWVERTEXPROCESS | enable software vertex processing
  RENDER_HWLIGHTINGENABLE | enable fixed-function vertex lighting
  RENDER_AMBIENTLIGHT | ambient light color value (2nd param: deARGB color)
  RENDER_DITHERENABLE | enable dithering, useful in 16-bit display modes
  RENDER_SPECULARENABLE | enable specular highlighting for fixed-function lighting
  RENDER_SPECULARPERSPECTIVE | set specular calculations to use perspective projection
  RENDER_PERVERTEXCOLOR | enable per-vertex color values to be used in lighting model
  RENDER_STENCILENABLE | enable stencil buffering
  RENDER_TWOSIDEDSTENCILENABLE | enable two sided stencil buffering
  RENDER_STENCILREF | set the stencil reference value (2nd param: DWORD value, default value: 0)
  RENDER_STENCILMASK | set the stencil mask value (2nd param: DWORD value, default value: 0xFFFFFFFF)
  RENDER_STENCILWRITEMASK | set the stencil write-mask value (2nd param: DWORD value, default value: 0xFFFFFFFF)
  RENDER_STENCILFUNCTION | type of stencil comparison to perform (2nd param: RenderCmpFunc)
  RENDER_STENCILFAIL | operation to perform when both the stencil and depth tests fail (2nd param: RenderStencilOp)
  RENDER_STENCILZFAIL | operation to perform when stencil test passes and depth test fails (2nd param: RenderStencilOp)
  RENDER_STENCILPASS | operatoin to perform when both the stencil and depth tests pass (2nd param: RenderStencilOp)
  RENDER_CCW_STENCILFUNCTION | type of stencil comparison to perform for second stencil "side" (2nd param: RenderCmpFunc)
  RENDER_CCW_STENCILFAIL | operation to perform when both the stencil and depth tests fail (2nd param: RenderStencilOp)
  RENDER_CCW_STENCILZFAIL | operation to perform when stencil test passes and depth test fails for second stencil "side" (2nd param: RenderStencilOp)
  RENDER_CCW_STENCILPASS | operation to perform when both the stencil and depth tests pass for second stencil "side" (2nd param: RenderStencilOp)
  RENDER_COUNT |
  RENDER_FORCE_32BIT |

enum IdeDriver::RenderStencilOp

  | operation to perform for stenciling. "max" value is (2^n)-1 where n is the bit-depth of the stencil buffer (unsigned integer). (StencilRef & StencilMask) RenderCmpFunc (StencilBufferValue & StencilMask) Enumeration values:
  STENCIL_KEEP | (default value) keep the current value
  STENCIL_ZERO | set the stencil-buffer entry to 0
  STENCIL_REPLACE | replace the stencil-buffer entry with the reference value
  STENCIL_INCRWRAP | increment the stencil-buffer entry, clamping to max
  STENCIL_DECRWRAP | decrement the stencil-buffer entry, clamping to 0
  STENCIL_INVERT | invert the bits in the stencil-buffer entry
  STENCIL_INCR | increment the stencil-buffer entry, wrapping to 0
  STENCIL_DECR | decrement the stencil-buffer entry, wrapping to max
  STENCIL_COUNT |
  STENCIL_FORCE_32BIT |

enum IdeDriver::Resource

  | resource types to feed into ValidFormat Enumeration values:
  RESOURCE_UNKNOWN | invalid value
  RESOURCE_DISPLAY | resource is a full-screen display
  RESOURCE_DISPLAYWINDOWED | resource is a windowed display
  RESOURCE_TEXTURE | resource is a texture
  RESOURCE_RENDERTARGET | resource is a color-buffer render-target
  RESOURCE_DEPTHSTENCIL | resource is a z-buffer with depth and possibly stencil information
  RESOURCE_FSAA | resource alias for a full-scene anti-aliased device
  RESOURCE_FSAAWINDOWED | resource alias for a full-scene anti-aliased device, in windowed mode
  RESOURCE_COUNT |
  RESOURCE_FORCE_32BIT |

enum IdeDriver::Types

  | different driver types Enumeration values:
  DRIVER_INVALID | invalid option
  DRIVER_DIRECT3D8 | Direct3D driver.
  DRIVER_DIRECT3D9 | Direct3D driver.
  DRIVER_OPENGL | OpenGL driver.
  DRIVER_COUNT |
  DRIVER_FORCE_32BIT |

enum IdeDriver::ZPP

  | possible z-buffer formats Enumeration values:
  ZPP_UNKNOWN | bad value
  ZPP_D16 | 16-bit depth buffer
  ZPP_D15S1 | 15-bit depth with 1-bit stencil (0,1)
  ZPP_D24 | 24-bit depth buffer
  ZPP_D24S4 | 24-bit depth with 4-bit stencil (0-15)
  ZPP_D24S8 | 24-bit depth with 8-bit stencil (0-255)
  ZPP_D32 | 32-bit depth (some cards might not work with this)
  ZPP_COUNT |
  ZPP_FORCE_32BIT |

## Constructor & Destructor Documentation

virtual IdeDriver::~IdeDriver | ( |  | ) | `[inline, protected, virtual]`

## Member Function Documentation

virtual deBoolean IdeDriver::AddBitmap | ( | IdeBitmap * | Bitmap | ) | `[pure virtual]`

| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::AddBitmapProxy | ( | IdeBitmapProxy * | BitmapProxy | ) | `[pure virtual]`

| Adds a bitmap to the driver, turning it into a driver texture, and possibly a render-target. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::AddShader | ( | IdeShader * | Shader | ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::AddVertexBuffer | ( | IdeVertexBuffer * | Vertex | ) | `[pure virtual]`

| Add a vertex buffer to the driver. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::BeginFrame | ( |  | ) | `[pure virtual]`

| Call before rendering anything. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual long IdeDriver::BitDepth | ( | ZPP | ZPPType | ) | const`[pure virtual]`

| Get the bit-depth of a particular z-buffer format. Implemented in deDriver.

virtual long IdeDriver::BitDepth | ( | BPP | BPPType | ) | const`[pure virtual]`

| Get the bit-depth of a particular color format. Implemented in deDriver.

virtual deBoolean IdeDriver::ClearFrame | ( | deARGB | Color,
|  | deBoolean | ClearTarget = (DE_TRUE),
|  | deBoolean | ClearZBuffer = (DE_TRUE),
|  | deBoolean | ClearStencil = (DE_TRUE)
| ) | `[pure virtual]`

| Clear the frame with a particular color. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::DisableAllLights | ( |  | ) | `[pure virtual]`

| Disable all fixed-function lights. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::EnableLight | ( | long | LightID,
|  | deBoolean | Enable
| ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::EndFrame | ( |  | ) | `[pure virtual]`

| Finish the render and update the front-buffer. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual long IdeDriver::GetAdapterCount | ( |  | ) | const`[pure virtual]`

| Get the number of adapters supported under this driver. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual const deDriverCaps* IdeDriver::GetCaps | ( | long | Adapter | ) | const`[pure virtual]`

| Fill a deDriverCaps structure with an adapter's device capabilities. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual long IdeDriver::GetCount | ( |  | ) | `[pure virtual]`

| Implemented in deDriver.

virtual deBoolean IdeDriver::GetCurrentDisplay | ( | long | Adapter,
|  | deDisplay * | Display
| ) | const`[pure virtual]`

| Fill a deDisplay with an adapter's CURRENT (even un-renderable) display settings. If a fullscreen rendering mode has not been set up, this will be the desktop settings. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual const deDisplay* IdeDriver::GetDisplay | ( |  | ) | const`[pure virtual]`

| Get a pointer to the driver's internally-held display struct. Implemented in deDriver.

virtual deBoolean IdeDriver::GetDisplayMode | ( | long | Adapter,
|  | long | Mode,
|  | deDisplay * | Display
| ) | const`[pure virtual]`

  | Feed in a display struct to be filled in for the enumerated mode Parameters:
  Display | [in, out] pointer to a user-created deDisplay struct to be filled in, may not be NULL
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deRect IdeDriver::GetDisplayRect | ( |  | ) | const`[pure virtual]`

| Get the driver's internally-held client-window rect. Implemented in deDriver.

virtual deDriverStats* IdeDriver::GetDriverStats | ( |  | ) | `[pure virtual]`

| Get a pointer to the driver's internal statistics structure. Implemented in deDriver.

virtual deDriverInfo* IdeDriver::GetInfo | ( |  | ) | const`[pure virtual]`

| Get some information about the driver. Implemented in deDirect3D8, deDirect3D9, and deDriver.

virtual long IdeDriver::GetModeCount | ( | long | Adapter | ) | const`[pure virtual]`

| Get the number of modes for a particular adapter. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual unsigned long IdeDriver::GetQualityFlag | ( | QualityFlag | Flag | ) | `[pure virtual]`

| Get the status of a particular quality flag. Implemented in deDriver.

virtual unsigned long IdeDriver::GetRenderState | ( | RenderState | State | ) | `[pure virtual]`

| Get current value of the State passed in. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual IdeDriver::Types IdeDriver::GetType | ( |  | ) | const`[pure virtual]`

| Get the type of driver this is. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::GetVideoTexture | ( | IdeBitmap * | pBitmap,
|  | long | CubeMapFace = 0
| ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::HasStencil | ( | ZPP | ZPPType | ) | const`[pure virtual]`

| Test whether a particular z-buffer format supports stenciling. Implemented in deDriver.

virtual deBoolean IdeDriver::Init | ( | HWND | WindowHandle | ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual void IdeDriver::LogInfo | ( | char * | Data,
|  | ... |
| ) | `[pure virtual]`

| Log text to the driver's log file. Implemented in deDriver.

virtual long IdeDriver::Release | ( |  | ) | `[pure virtual]`

| Delete the object. Implemented in deDirect3D8, deDirect3D9, and deOpenGL.

virtual deBoolean IdeDriver::RemoveBitmap | ( | IdeBitmap * | Bitmap | ) | `[pure virtual]`

| Removes a bitmap from a driver by deleting the internal driver texture. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::RemoveShader | ( | IdeShader * | Shader | ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::RemoveVertexBuffer | ( | IdeVertexBuffer * | Vertex | ) | `[pure virtual]`

| Remove a vertex buffer from the driver. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::Render | ( | IdeVertexBuffer * | VBuffer,
|  | long | IndexOffset,
|  | IdeVertexBuffer * | IndexOverride = (0)
| ) | `[pure virtual]`

| Render the selected Vertex Buffer to the back-buffer. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::RenderTo | ( | IdeBitmap * | pBitmap,
|  | long | CubeMapFace = 0
| ) | `[pure virtual]`

  | Sets the current render-target to the bitmap passed in, if the bitmap can be a render-target. Parameters:
  pBitmap | [in] Bitmap that is a render-target to be rendered to. This bitmap will only act as a handle to the internal driver texture being used, it doesn't contain a copy of what the video card's texture stores
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::Reset | ( | deDisplay * | Display = (0) | ) | `[pure virtual]`

  | Reset the driver, possibly with altered display properties. Resetting will cause all vertex buffers and textures to be flushed Parameters:
  Display | [in] user-defined display settings, may be NULL to keep current settings
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual void IdeDriver::ResetDriverStats | ( |  | ) | `[pure virtual]`

| Reset the driver's internal statistics structure to all zeroes. Implemented in deDriver.

virtual deBoolean IdeDriver::ScreenShot | ( | IdeBitmap *& | pBitmap,
|  | deBoolean | GrabWindow = (DE_TRUE)
| ) | `[pure virtual]`

  | Copies the frontbuffer into the bitmap specified cannot be a render-target Parameters:
  pBitmap | [out] Bitmap pointer that is to have the screen data copied into. A new deBitmap object will be created internally, and its address stored into this parameter. After the data is copied, you must save the file to disk manually, if desired.
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetCameraTransform | ( | deTransformInfo * | M | ) | `[pure virtual]`

| Set the camera transform (position and orientation). Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetDepthRange | ( | deFloat | MinZ,
|  | deFloat | MaxZ
| ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, and deOpenGL.

virtual deBoolean IdeDriver::SetDisplay | ( | deDisplay * | Display | ) | `[pure virtual]`

  | Set the display up, creating a new internal render device Parameters:
  Display | [in] user-defined display settings, may not be NULL
Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetFOVClipping | ( | deFloat | FOV,
|  | deFloat | Aspect,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar
| ) | `[pure virtual]`

| Set up a perspective view transformation. Implemented in deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetFOVClippingSubRect | ( | deFloat | FOVY,
|  | deFloat | Aspect,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar,
|  | deRect | SubRect
| ) | `[pure virtual]`

| Set up a perspective view transformation with a sub-rect specified in the [0,1] range. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetFOVClippingSubRectFloat | ( | deFloat | FOVY,
|  | deFloat | Aspect,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar,
|  | deFloatRect | SubRect
| ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetOrthoClipping | ( | deFloat | Width,
|  | deFloat | Height,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar,
|  | deBoolean | Invert = (DE_FALSE)
| ) | `[pure virtual]`

| Set up an orthographic (parallel projection) view transformation. Implemented in deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetOrthoClippingSubRect | ( | deFloat | Width,
|  | deFloat | Height,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar,
|  | deBoolean | Invert,
|  | deRect | SubRect
| ) | `[pure virtual]`

| Set up an orthographic (parallel projection) view transformation with a sub-rect specified in the [0,1] range. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetOrthoClippingSubRectFloat | ( | deFloat | Width,
|  | deFloat | Height,
|  | deFloat | ClipNear,
|  | deFloat | ClipFar,
|  | deBoolean | Invert,
|  | deFloatRect | SubRect
| ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetQualityFlag | ( | QualityFlag | Flag,
|  | unsigned long | Value
| ) | `[pure virtual]`

| Set the status of a particular quality flag. Implemented in deDriver.

virtual deBoolean IdeDriver::SetRenderState | ( | RenderState | State,
|  | unsigned long | Value
| ) | `[pure virtual]`

| Set a value-based render-state. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetRenderState | ( | const IdeRenderState * | State | ) | `[pure virtual]`

| Set a class-based render-state (texture, material, or light). Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetScissorRect | ( | deRect | ScissorRect | ) | `[pure virtual]`

| Implemented in deDirect3D9, and deDriver.

virtual deBoolean IdeDriver::SetShader | ( | IdeShader * | Shader | ) | `[pure virtual]`

| Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetTextureTransform | ( | long | StageNum,
|  | deTransformInfo * | Mat
| ) | `[pure virtual]`

| Set the texture transform for a particular stage. Implemented in deDirect3D8, deDirect3D9, and deOpenGL.

virtual deBoolean IdeDriver::SetViewport | ( | long | X,
|  | long | Y,
|  | long | Width,
|  | long | Height,
|  | deFloat | MinZ,
|  | deFloat | MaxZ
| ) | `[pure virtual]`

| Set the screen-space viewport. Implemented in deDriver, and deOpenGL.

virtual deBoolean IdeDriver::SetWorldTransform | ( | deTransformInfo * | Mat | ) | `[pure virtual]`

| Set the world transform (to take things from "object space" to "world space"). Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual long IdeDriver::StencilDepth | ( | ZPP | ZPPType | ) | const`[pure virtual]`

| Get the bit-depth devoted to stencil channel in z-buffer format. Implemented in deDriver.

virtual deBoolean IdeDriver::UpdateVertexBuffer | ( | IdeVertexBuffer * | Vertex | ) | `[pure virtual]`

| Update a vertex buffer so the driver's internal data matches it. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deRect IdeDriver::UpdateWindowRect | ( |  | ) | `[pure virtual]`

| Update the driver's knowledge of the client-window rect. Implemented in deDriver.

virtual deBoolean IdeDriver::ValidFormat | ( | long | Adapter,
|  | Resource | ResourceType,
|  | BPP | BPPType,
|  | ZPP | ZPPType,
|  | BPP | FrontBuffer,
|  | long | ExtraFlag = 0
| ) | const`[pure virtual]`

| Test for a valid format for various resource types. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

virtual deBoolean IdeDriver::WindowedAllowed | ( | long | Adapter | ) | const`[pure virtual]`

| Test whether windowed mode is allowed on a particular adapter. Implemented in deDirect3D8, deDirect3D9, deDriver, and deOpenGL.

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

- deDriver.hpp