From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/u__driver_8h-source.html | 442 ++++++++++++++++++++++++++++++ 1 file changed, 442 insertions(+) create mode 100644 docs/doxygen/nel/u__driver_8h-source.html (limited to 'docs/doxygen/nel/u__driver_8h-source.html') diff --git a/docs/doxygen/nel/u__driver_8h-source.html b/docs/doxygen/nel/u__driver_8h-source.html new file mode 100644 index 00000000..d44774a4 --- /dev/null +++ b/docs/doxygen/nel/u__driver_8h-source.html @@ -0,0 +1,442 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# 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  
+

u_driver.h

Go to the documentation of this file.
00001 
+00007 /* Copyright, 2001 Nevrax Ltd.
+00008  *
+00009  * This file is part of NEVRAX NEL.
+00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
+00011  * it under the terms of the GNU General Public License as published by
+00012  * the Free Software Foundation; either version 2, or (at your option)
+00013  * any later version.
+00014 
+00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
+00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
+00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+00018  * General Public License for more details.
+00019 
+00020  * You should have received a copy of the GNU General Public License
+00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
+00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+00023  * MA 02111-1307, USA.
+00024  */
+00025 
+00026 #ifndef NL_U_DRIVER_H
+00027 #define NL_U_DRIVER_H
+00028 
+00029 #include "nel/misc/types_nl.h"
+00030 #include "nel/3d/viewport.h"
+00031 #include "nel/3d/scissor.h"
+00032 #include "nel/3d/frustum.h"
+00033 #include "nel/misc/geom_ext.h"
+00034 #include "nel/misc/matrix.h"
+00035 #include "nel/misc/rgba.h"
+00036 #include "nel/misc/rect.h"
+00037 #include "nel/misc/bitmap.h"
+00038 #include "nel/misc/event_server.h"
+00039 #include "nel/misc/event_listener.h"
+00040 #include "nel/3d/primitive_profile.h"
+00041 
+00042 
+00043 
+00044 namespace NLMISC
+00045 {
+00046         struct IMouseDevice;
+00047         struct IKeyboardDevice;
+00048         struct IInputDeviceManager;
+00049 }
+00050 
+00051 
+00052 namespace NL3D
+00053 {
+00054 
+00055 
+00056 using NLMISC::CVector;
+00057 using NLMISC::CMatrix;
+00058 using NLMISC::CRGBA;
+00059 using NLMISC::CBitmap;
+00060 
+00061 
+00062 class UScene;
+00063 class UCamera;
+00064 class UTextureFile;
+00065 class UTextureRaw;
+00066 class UMaterial;
+00067 class UTextContext;
+00068 class UShapeBank;
+00069 class U3dMouseListener;
+00070 class ULight;
+00071 
+00072 //****************************************************************************
+00074 struct CMonitorColorProperties
+00075 {
+00076         float           Contrast[3];            // Contrast parameters, RGB,            [-1.f ~ 1.f]
+00077         float           Luminosity[3];          // Luminosity parameters, RGB,          [-1.f ~ 1.f]
+00078         float           Gamma[3];                       // Gamma parameters, RGB,                       [-1.f ~ 1.f]
+00079 };
+00080 
+00081 // ***************************************************************************
+00094 class UDriver
+00095 {
+00096 public:
+00097 
+00099         class CMode 
+00100         {
+00101         public:
+00102                 bool                            Windowed;
+00103                 uint16                          Width;
+00104                 uint16                          Height;
+00105                 uint8                           Depth;
+00106 
+00107                                                         CMode(void) 
+00108                                                         { 
+00109                                                                 Windowed=false;
+00110                                                                 Width=0;
+00111                                                                 Height=0;
+00112                                                                 Depth=0;
+00113                                                         }
+00114                                                         CMode(uint16 w, uint16 h, uint8 d, bool windowed= true)
+00115                                                         {
+00116                                                                 Windowed=windowed;
+00117                                                                 Width=w;
+00118                                                                 Height=h;
+00119                                                                 Depth=d;
+00120                                                         }
+00121         };
+00122 
+00123         typedef std::vector<CMode> TModeList;
+00124 
+00125 
+00127         enum TMessageBoxId { okId=0, yesId, noId, abortId, retryId, cancelId, ignoreId, idCount };
+00128         enum TMessageBoxType { okType=0, okCancelType, yesNoType, abortRetryIgnoreType, yesNoCancelType, retryCancelType, typeCount };
+00129         enum TMessageBoxIcon { noIcon=0, handIcon, questionIcon, exclamationIcon, asteriskIcon, warningIcon, errorIcon, informationIcon, stopIcon, iconCount };
+00130 
+00132         enum TPolygonMode { Filled=0, Line, Point };
+00133 
+00134 
+00135 public:
+00137         NLMISC::CEventServer                    EventServer;
+00139         NLMISC::CEventListenerAsync             AsyncListener;
+00140 
+00141 
+00142 public:
+00143 
+00145         // @{
+00146         UDriver();
+00147         virtual ~UDriver();
+00148         // @}
+00149 
+00150 
+00152 
+00155         // @{
+00156         virtual void                    disableHardwareVertexProgram()=0;
+00157         virtual void                    disableHardwareVertexArrayAGP()=0;
+00158         virtual void                    disableHardwareTextureShader()=0;
+00159         // @}
+00160 
+00161 
+00163         // @{
+00164 
+00166         virtual TModeList               enumModes()=0;
+00167 
+00169         virtual void                    setDisplay(const CMode &mode) =0;
+00171         virtual void                    release() =0;
+00172 
+00174         virtual bool                    activate(void)=0;
+00176         virtual bool                    isActive()=0;
+00177 
+00178         // @}
+00179 
+00180 
+00181 
+00183         // @{
+00185         virtual void                    clearRGBABuffer(CRGBA col= CRGBA(255,255,255,255)) =0;
+00187         virtual void                    clearZBuffer() =0;
+00189         virtual void                    clearBuffers(CRGBA col= CRGBA(255,255,255,255)) =0;
+00191         virtual void                    swapBuffers() =0;
+00192 
+00193         // @}
+00194 
+00195 
+00196 
+00198         // @{
+00199         virtual bool                    fogEnabled()=0;
+00200         virtual void                    enableFog(bool enable)=0;
+00202         virtual void                    setupFog(float start, float end, CRGBA color)=0;
+00203         // @}
+00204 
+00206         // @{
+00207         virtual void                    setLight (uint8 num, const ULight& light) = 0;
+00208         virtual void                    enableLight (uint8 num, bool enable=true) = 0;
+00209         virtual void                    setAmbientColor (CRGBA color) = 0;
+00210         // @}
+00211 
+00212 
+00214         // @{
+00216         virtual UScene                  *createScene() =0;
+00218         virtual void                    deleteScene(UScene      *scene) =0;
+00219         // @}
+00220 
+00221 
+00223         // @{
+00224 
+00225 
+00227         virtual UTextContext    *createTextContext(const std::string fontFileName, const std::string fontExFileName = "") =0;
+00229         virtual void                    deleteTextContext(UTextContext  *textContext) =0;
+00231         virtual void                    setFontManagerMaxMemory(uint maxMem)=0;
+00233         virtual         std::string getFontManagerCacheInformation() const =0;
+00234 
+00235 
+00240         virtual UTextureFile    *createTextureFile(const std::string &file) =0;
+00242         virtual void                    deleteTextureFile(UTextureFile *textfile) =0;
+00244         virtual UTextureRaw             *createTextureRaw() =0;
+00246         virtual void                    deleteTextureRaw(UTextureRaw *textraw) =0;
+00248         virtual UMaterial               *createMaterial() =0;
+00250         virtual void                    deleteMaterial(UMaterial *mat) =0;
+00251         // @}
+00252 
+00253 
+00255 
+00262         // @{
+00263 
+00266         virtual void                    setScissor(const CScissor &)=0;
+00267         virtual CScissor                getScissor()=0;
+00270         virtual void                    setViewport(const CViewport &)=0;
+00271         virtual CViewport               getViewport()=0;
+00274         virtual void                    setFrustum(const CFrustum &frust) =0;
+00275         virtual CFrustum                getFrustum() =0;
+00279         virtual void                    setViewMatrix(const CMatrix &mat) =0;
+00280         virtual CMatrix                 getViewMatrix() =0;
+00283         virtual void                    setModelMatrix(const CMatrix &mat) =0;
+00284         virtual CMatrix                 getModelMatrix() =0;
+00285 
+00286 
+00290         virtual void                    setMatrixMode2D(const CFrustum &frust) =0;
+00292         void                                    setMatrixMode2D11();
+00294         void                                    setMatrixMode2D43();
+00299         virtual void                    setMatrixMode3D(UCamera &camera) =0;
+00300 
+00301         // @}
+00302 
+00303 
+00305 
+00309         // @{
+00310 
+00312         virtual void                    drawLine(const NLMISC::CLine &tri, UMaterial &mat) =0;
+00314         virtual void                    drawLine(const NLMISC::CLineColor &tri, UMaterial &mat) =0;
+00316         virtual void                    drawLine(const NLMISC::CLineUV &tri, UMaterial &mat) =0;
+00318         virtual void                    drawLine(const NLMISC::CLineColorUV &tri, UMaterial &mat) =0;
+00319 
+00321         virtual void                    drawTriangle(const NLMISC::CTriangle &tri, UMaterial &mat) =0;
+00323         virtual void                    drawTriangle(const NLMISC::CTriangleColor &tri, UMaterial &mat) =0;
+00325         virtual void                    drawTriangle(const NLMISC::CTriangleUV &tri, UMaterial &mat) =0;
+00327         virtual void                    drawTriangle(const NLMISC::CTriangleColorUV &tri, UMaterial &mat) =0;
+00328 
+00330         virtual void                    drawQuad(const NLMISC::CQuad &tri, UMaterial &mat) =0;
+00332         virtual void                    drawQuad(const NLMISC::CQuadColor &tri, UMaterial &mat) =0;
+00334         virtual void                    drawQuad(const NLMISC::CQuadUV &tri, UMaterial &mat) =0;
+00336         virtual void                    drawQuad(const NLMISC::CQuadColorUV &tri, UMaterial &mat) =0;
+00337 
+00338         virtual void                    drawQuads(const std::vector<NLMISC::CQuadColorUV> &tri, UMaterial &mat) =0;
+00339         virtual void                    drawQuads(const NLMISC::CQuadColorUV *qs, uint32 nbq, UMaterial &mat) =0;
+00340 
+00341         // @}
+00342 
+00343 
+00345 
+00347         // @{
+00348 
+00350         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;
+00352         virtual void                    drawLine (float x0, float y0, float x1, float y1, CRGBA col= CRGBA(255,255,255,255)) =0;
+00354         virtual void                    drawTriangle (float x0, float y0, float x1, float y1, float x2, float y2, CRGBA col) =0;
+00356         virtual void                    drawQuad (float x0, float y0, float x1, float y1, CRGBA col) =0;
+00358         virtual void                    drawQuad (float xcenter, float ycenter, float radius, CRGBA col) =0;
+00360         virtual void                    drawWiredQuad (float x0, float y0, float x1, float y1, CRGBA col) =0;
+00362         virtual void                    drawWiredQuad (float xcenter, float ycenter, float radius, CRGBA col) =0;
+00363 
+00364         // @}
+00365 
+00366 
+00367 
+00369         // @{
+00375         virtual uint32                  getImplementationVersion () const = 0;
+00376 
+00381         virtual const char*             getDriverInformation () = 0;
+00382 
+00387         virtual const char*             getVideocardInformation () = 0;
+00388 
+00390         virtual sint                    getNbTextureStages()=0;
+00391 
+00393         virtual void                    getWindowSize (uint32 &width, uint32 &height) = 0;
+00395         virtual uint                    getWindowWidth () =0;
+00397         virtual uint                    getWindowHeight () =0;
+00398 
+00403         virtual void                    getBuffer (CBitmap &bitmap) = 0;
+00404 
+00409         virtual void                    getZBuffer (std::vector<float>  &zbuffer) = 0;
+00410 
+00417         virtual void                    getBufferPart (CBitmap &bitmap, NLMISC::CRect &rect) = 0;
+00418 
+00425         virtual void                    getZBufferPart (std::vector<float>  &zbuffer, NLMISC::CRect &rect) = 0;
+00426 
+00432         virtual bool                    fillBuffer (CBitmap &bitmap) = 0;
+00433 
+00434         // @}
+00435 
+00436 
+00438         // @{
+00447                 virtual NLMISC::IMouseDevice                    *enableLowLevelMouse(bool enable) = 0;
+00448 
+00454                 virtual NLMISC::IKeyboardDevice                 *enableLowLevelKeyboard(bool enable) = 0;
+00455 
+00459                 virtual NLMISC::IInputDeviceManager             *getLowLevelInputDeviceManager() = 0;
+00460 
+00464                 virtual void                    showCursor (bool b) = 0;
+00465 
+00467                 virtual void                    setMousePos (float x, float y) = 0;
+00468         
+00472                 virtual void                    setCapture (bool b) = 0;
+00473         // @}
+00474 
+00476         // @{
+00477 
+00487         virtual TMessageBoxId   systemMessageBox (const char* message, const char* title, TMessageBoxType type=okType, TMessageBoxIcon icon=noIcon) =0;
+00488         
+00489 
+00496         virtual void                    setPolygonMode (TPolygonMode mode) =0;
+00497 
+00503         virtual TPolygonMode    getPolygonMode () =0;
+00504 
+00509         virtual U3dMouseListener*       create3dMouseListener () =0;
+00510 
+00515         virtual void delete3dMouseListener (U3dMouseListener *listener) =0;
+00516 
+00521         virtual void                    forceDXTCCompression(bool dxtcComp)=0;
+00522 
+00528         virtual void                    forceTextureResize(uint divisor)=0;
+00529 
+00534         virtual bool                    setMonitorColorProperties (const CMonitorColorProperties &properties) = 0;
+00535 
+00536         // @}
+00537 
+00539         // @{
+00544         virtual UShapeBank*             getShapeBank() = 0;
+00545         // @}
+00546 
+00547 
+00549         // @{
+00550 
+00556         virtual void                    profileRenderedPrimitives(CPrimitiveProfile &pIn, CPrimitiveProfile &pOut) =0;
+00557 
+00561         virtual uint32                  profileAllocatedTextureMemory() =0;
+00562 
+00565         virtual uint32                  profileSetupedMaterials() const =0;
+00566 
+00569         virtual uint32                  profileSetupedModelMatrix() const =0;
+00570 
+00573         virtual void                    enableUsedTextureMemorySum (bool enable=true) =0;
+00574         
+00578         virtual uint32                  getUsedTextureMemory() const =0;
+00579 
+00580         // @}
+00581 
+00582 
+00584         // @{
+00592         virtual void                            setupAsyncTextureLod(uint baseLevel, uint maxLevel) =0;
+00594         virtual void                            setupAsyncTextureMaxUploadPerFrame(uint maxup) =0;
+00596         virtual void                            setupMaxTotalAsyncTextureSize(uint maxText) =0;
+00598         virtual void                            setupMaxHLSColoringPerFrame(uint maxCol) =0;
+00602         virtual void                            updateAsyncTexture() =0;
+00603 
+00605         virtual uint                            getTotalAsyncTextureSizeAsked() const =0;
+00607         virtual uint                            getLastAsyncTextureSizeGot() const =0;
+00608 
+00612         virtual void                            loadHLSBank(const std::string &fileName) =0;
+00613 
+00614         // @}
+00615 
+00616 
+00617 public:
+00618 
+00622         static  UDriver                 *createDriver();
+00623 
+00624 };
+00625 
+00626 
+00627 } // NL3D
+00628 
+00629 
+00630 #endif // NL_U_DRIVER_H
+00631 
+00632 /* End of u_driver.h */
+
+ + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1