| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #ifndef __OgreWin32GLSupport_H__
- #define __OgreWin32GLSupport_H__
- #include "CmWin32Prerequisites.h"
- #include "CmGLSupport.h"
- #include "CmGLRenderSystem.h"
- namespace CamelotEngine
- {
-
- class _OgreGLExport Win32GLSupport : public GLSupport
- {
- public:
- Win32GLSupport();
- /**
- * Add any special config values to the system.
- * Must have a "Full Screen" value that is a bool and a "Video Mode" value
- * that is a string in the form of wxhxb
- */
- void addConfig();
- void setConfigOption(const String &name, const String &value);
- /**
- * Make sure all the extra options are valid
- */
- String validateConfig();
- virtual RenderWindow* createWindow(bool autoCreateWindow, GLRenderSystem* renderSystem, const String& windowTitle = "OGRE Render Window");
-
- /// @copydoc RenderSystem::_createRenderWindow
- virtual RenderWindow* newWindow(const String &name, unsigned int width, unsigned int height,
- bool fullScreen, const NameValuePairList *miscParams = 0);
-
- /**
- * Start anything special
- */
- void start();
- /**
- * Stop anything special
- */
- void stop();
- /**
- * Get the address of a function
- */
- void* getProcAddress(const String& procname);
- /**
- * Initialise extensions
- */
- virtual void initialiseExtensions();
-
- bool selectPixelFormat(HDC hdc, int colourDepth, int multisample, bool hwGamma);
- virtual bool supportsPBuffers();
- virtual GLPBuffer *createPBuffer(PixelComponentType format, size_t width, size_t height);
- virtual unsigned int getDisplayMonitorCount() const;
- private:
- // Allowed video modes
- vector<DEVMODE>::type mDevModes;
- Win32Window *mInitialWindow;
- vector<int>::type mFSAALevels;
- bool mHasPixelFormatARB;
- bool mHasMultisample;
- bool mHasHardwareGamma;
- struct DisplayMonitorInfo
- {
- HMONITOR hMonitor;
- MONITORINFOEX monitorInfoEx;
- };
- typedef vector<DisplayMonitorInfo>::type DisplayMonitorInfoList;
- typedef DisplayMonitorInfoList::iterator DisplayMonitorInfoIterator;
- DisplayMonitorInfoList mMonitorInfoList;
- void refreshConfig();
- void initialiseWGL();
- static LRESULT CALLBACK dummyWndProc(HWND hwnd, UINT umsg, WPARAM wp, LPARAM lp);
- static BOOL CALLBACK sCreateMonitorsInfoEnumProc(HMONITOR hMonitor, HDC hdcMonitor,
- LPRECT lprcMonitor, LPARAM dwData);
- };
- }
- #endif
|