llwindowmesaheadless.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:5k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llwindowmesaheadless.h
  3.  * @brief Windows implementation of LLWindow class
  4.  *
  5.  * $LicenseInfo:firstyear=2001&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2001-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LL_LLWINDOWMESAHEADLESS_H
  33. #define LL_LLWINDOWMESAHEADLESS_H
  34. #if LL_MESA_HEADLESS
  35. #include "llwindow.h"
  36. #include "GL/glu.h"
  37. #include "GL/osmesa.h"
  38. class LLWindowMesaHeadless : public LLWindow
  39. {
  40. public:
  41. /*virtual*/ void show() {};
  42. /*virtual*/ void hide() {};
  43. /*virtual*/ void close() {};
  44. /*virtual*/ BOOL getVisible() {return FALSE;};
  45. /*virtual*/ BOOL getMinimized() {return FALSE;};
  46. /*virtual*/ BOOL getMaximized() {return FALSE;};
  47. /*virtual*/ BOOL maximize() {return FALSE;};
  48. /*virtual*/ void minimize() {};
  49. /*virtual*/ void restore() {};
  50. /*virtual*/ BOOL getFullscreen() {return FALSE;};
  51. /*virtual*/ BOOL getPosition(LLCoordScreen *position) {return FALSE;};
  52. /*virtual*/ BOOL getSize(LLCoordScreen *size) {return FALSE;};
  53. /*virtual*/ BOOL getSize(LLCoordWindow *size) {return FALSE;};
  54. /*virtual*/ BOOL setPosition(LLCoordScreen position) {return FALSE;};
  55. /*virtual*/ BOOL setSize(LLCoordScreen size) {return FALSE;};
  56. /*virtual*/ BOOL switchContext(BOOL fullscreen, const LLCoordScreen &size, BOOL disable_vsync, const LLCoordScreen * const posp = NULL) {return FALSE;};
  57. /*virtual*/ BOOL setCursorPosition(LLCoordWindow position) {return FALSE;};
  58. /*virtual*/ BOOL getCursorPosition(LLCoordWindow *position) {return FALSE;};
  59. /*virtual*/ void showCursor() {};
  60. /*virtual*/ void hideCursor() {};
  61. /*virtual*/ void showCursorFromMouseMove() {};
  62. /*virtual*/ void hideCursorUntilMouseMove() {};
  63. /*virtual*/ BOOL isCursorHidden() {return FALSE;};
  64. /*virtual*/ void setCursor(ECursorType cursor) {};
  65. //virtual ECursorType getCursor() { return mCurrentCursor; };
  66. /*virtual*/ void captureMouse() {};
  67. /*virtual*/ void releaseMouse() {};
  68. /*virtual*/ void setMouseClipping( BOOL b ) {};
  69. /*virtual*/ BOOL isClipboardTextAvailable() {return FALSE; };
  70. /*virtual*/ BOOL pasteTextFromClipboard(LLWString &dst) {return FALSE; };
  71. /*virtual*/ BOOL copyTextToClipboard(const LLWString &src) {return FALSE; };
  72. /*virtual*/ void flashIcon(F32 seconds) {};
  73. /*virtual*/ F32 getGamma() {return 1.0f; };
  74. /*virtual*/ BOOL setGamma(const F32 gamma) {return FALSE; }; // Set the gamma
  75. /*virtual*/ BOOL restoreGamma() {return FALSE; }; // Restore original gamma table (before updating gamma)
  76. /*virtual*/ void setFSAASamples(const U32 fsaa_samples) { /* FSAA not supported yet on Mesa headless.*/ }
  77. /*virtual*/ U32  getFSAASamples() { return 0; }
  78. //virtual ESwapMethod getSwapMethod() { return mSwapMethod; }
  79. /*virtual*/ void gatherInput() {};
  80. /*virtual*/ void delayInputProcessing() {};
  81. /*virtual*/ void swapBuffers();
  82. // handy coordinate space conversion routines
  83. /*virtual*/ BOOL convertCoords(LLCoordScreen from, LLCoordWindow *to) { return FALSE; };
  84. /*virtual*/ BOOL convertCoords(LLCoordWindow from, LLCoordScreen *to) { return FALSE; };
  85. /*virtual*/ BOOL convertCoords(LLCoordWindow from, LLCoordGL *to) { return FALSE; };
  86. /*virtual*/ BOOL convertCoords(LLCoordGL from, LLCoordWindow *to) { return FALSE; };
  87. /*virtual*/ BOOL convertCoords(LLCoordScreen from, LLCoordGL *to) { return FALSE; };
  88. /*virtual*/ BOOL convertCoords(LLCoordGL from, LLCoordScreen *to) { return FALSE; };
  89. /*virtual*/ LLWindowResolution* getSupportedResolutions(S32 &num_resolutions) { return NULL; };
  90. /*virtual*/ F32 getNativeAspectRatio() { return 1.0f; };
  91. /*virtual*/ F32 getPixelAspectRatio() { return 1.0f; };
  92. /*virtual*/ void setNativeAspectRatio(F32 ratio) {}
  93. /*virtual*/ void *getPlatformWindow() { return 0; };
  94. /*virtual*/ void bringToFront() {};
  95. LLWindowMesaHeadless(LLWindowCallbacks* callbacks,
  96.                          const std::string& title, const std::string& name, S32 x, S32 y, S32 width, S32 height,
  97.   U32 flags,  BOOL fullscreen, BOOL clearBg,
  98.   BOOL disable_vsync, BOOL use_gl, BOOL ignore_pixel_depth);
  99. ~LLWindowMesaHeadless();
  100. private:
  101. OSMesaContext mMesaContext;
  102. unsigned char * mMesaBuffer;
  103. };
  104. class LLSplashScreenMesaHeadless : public LLSplashScreen
  105. {
  106. public:
  107. LLSplashScreenMesaHeadless() {};
  108. virtual ~LLSplashScreenMesaHeadless() {};
  109. /*virtual*/ void showImpl() {};
  110. /*virtual*/ void updateImpl(const std::string& mesg) {};
  111. /*virtual*/ void hideImpl() {};
  112. };
  113. #endif
  114. #endif //LL_LLWINDOWMESAHEADLESS_H