gfxGLWindowTarget.h
Engine/source/gfx/gl/gfxGLWindowTarget.h
Classes:
class
Detailed Description
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef _GFXGLWINDOWTARGET_H_ 25#define _GFXGLWINDOWTARGET_H_ 26 27#include "gfx/gfxTarget.h" 28 29class GFXGLWindowTarget : public GFXWindowTarget 30{ 31public: 32 33 GFXGLWindowTarget(PlatformWindow *win, GFXDevice *d); 34 ~GFXGLWindowTarget(); 35 36 const Point2I getSize() 37 { 38 return mWindow->getClientExtent(); 39 } 40 virtual GFXFormat getFormat() 41 { 42 // TODO: Fix me! 43 return GFXFormatR8G8B8A8_SRGB; 44 } 45 void makeActive(); 46 virtual bool present(); 47 virtual void resetMode(); 48 virtual void zombify() { } 49 virtual void resurrect() { } 50 51 virtual void resolveTo(GFXTextureObject* obj); 52 53 void _onAppSignal(WindowId wnd, S32 event); 54 55 // create pixel format for the window 56 void createPixelFormat(); 57 58private: 59 friend class GFXGLDevice; 60 61 GLuint mCopyFBO, mBackBufferFBO; 62 GFXTexHandle mBackBufferColorTex, mBackBufferDepthTex; 63 Point2I size; 64 GFXDevice* mDevice; 65 /// Is this a secondary window 66 bool mSecondaryWindow; 67 void* mContext; 68 void* mFullscreenContext; 69 void _teardownCurrentMode(); 70 void _setupNewMode(); 71 void _setupAttachments(); 72 void _WindowPresent(); 73 //set this windows context to be current 74 void _makeContextCurrent(); 75 76}; 77 78#endif 79