//----------------------------------------------------------------------------// OpenGLWGLPBTextureTarget::OpenGLWGLPBTextureTarget(OpenGLRendererBase& owner) : OpenGLTextureTarget(owner), d_pixfmt(0), d_pbuffer(0), d_context(0), d_hdc(0), d_prevContext(0), d_prevDC(0) { if (!WGLEW_ARB_pbuffer) CEGUI_THROW(RendererException("WGL_ARB_pbuffer extension is needed to " "use OpenGLWGLPBTextureTarget!")); HDC hdc = wglGetCurrentDC(); uint fmtcnt; wglChoosePixelFormatARB(hdc, pbAttrs, 0, 1, &d_pixfmt, &fmtcnt); if (!fmtcnt) CEGUI_THROW(RendererException( "pbuff creation failure, no suitable pixel formats.")); initialiseTexture(); // set default size (and cause initialisation of the pbuffer) declareRenderSize(Sizef(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// void OpenGLApplePBTextureTarget::restoreTexture() { const Size sz(d_area.getSize()); d_area.setSize(Size(0.0f, 0.0f)); OpenGLTextureTarget::restoreTexture(); initialiseTexture(); declareRenderSize(sz); }
//----------------------------------------------------------------------------// NullTextureTarget::NullTextureTarget(NullRenderer& owner) : NullRenderTarget(owner), d_CEGUITexture(0) { d_CEGUITexture = static_cast<NullTexture*>(&d_owner.createTexture()); // setup area and cause the initial texture to be generated. declareRenderSize(Size(DEFAULT_SIZE, DEFAULT_SIZE)); }
CEGUITextureTarget::CEGUITextureTarget(CasaEngine::TextureTarget *pRenderTarget_) : CEGUIRenderTarget<CEGUI::TextureTarget>(pRenderTarget_) { CA_TRACE("CEGUITextureTarget(%p) created\n", this); m_pTexture = ::new CEGUITexture("internal_ceguitexture_" + s_textureNumber++); declareRenderSize(CEGUI::Sizef( pRenderTarget_->GetTexture()->GetTexture()->GetSize().x, pRenderTarget_->GetTexture()->GetTexture()->GetSize().y)); }
//----------------------------------------------------------------------------// OpenGLFBOTextureTarget::OpenGLFBOTextureTarget(OpenGLRenderer& owner) : OpenGLTextureTarget(owner) { if (!GLEW_EXT_framebuffer_object) CEGUI_THROW(InvalidRequestException("Hardware does not support FBO")); initialiseRenderTexture(); // setup area and cause the initial texture to be generated. declareRenderSize(Size(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// OgreTextureTarget::OgreTextureTarget(OgreRenderer& owner, Ogre::RenderSystem& rs) : OgreRenderTarget<TextureTarget>(owner, rs), d_CEGUITexture(0) { d_CEGUITexture = static_cast<OgreTexture*>( &d_owner.createTexture(generateTextureName())); // setup area and cause the initial texture to be generated. declareRenderSize(Sizef(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// Direct3D9TextureTarget::Direct3D9TextureTarget(Direct3D9Renderer& owner) : Direct3D9RenderTarget<TextureTarget>(owner), d_texture(0), d_surface(0) { // this essentially creates a 'null' CEGUI::Texture d_CEGUITexture = &static_cast<Direct3D9Texture&>( d_owner.createTexture(generateTextureName(), 0)); // setup area and cause the initial texture to be generated. declareRenderSize(Sizef(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// Direct3D11TextureTarget::Direct3D11TextureTarget(Direct3D11Renderer& owner) : Direct3D11RenderTarget(owner), d_texture(0), d_renderTargetView(0), d_previousRenderTargetView(0), d_previousDepthStencilView(0) { // this essentially creates a 'null' CEGUI::Texture d_CEGUITexture = &static_cast<Direct3D11Texture&>(d_owner.createTexture()); // setup area and cause the initial texture to be generated. declareRenderSize(Size(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// OpenGLFBOTextureTarget::OpenGLFBOTextureTarget(OpenGLRendererBase& owner) : OpenGLTextureTarget(owner) { if (!GLEW_EXT_framebuffer_object) CEGUI_THROW(InvalidRequestException("Hardware does not support FBO")); // no need to initialise d_previousFrameBuffer here, it will be // initialised in activate() initialiseRenderTexture(); // setup area and cause the initial texture to be generated. declareRenderSize(Sizef(DEFAULT_SIZE, DEFAULT_SIZE)); }
//----------------------------------------------------------------------------// OpenGLGLXPBTextureTarget::OpenGLGLXPBTextureTarget(OpenGLRenderer& owner) : OpenGLTextureTarget(owner), d_pbuffer(0) { if (!GLXEW_VERSION_1_3) throw InvalidRequestException("System does not support GLX >= 1.3 " "required by CEGUI pbuffer usage under GLX"); d_dpy = glXGetCurrentDisplay(); selectFBConfig(); createContext(); initialiseTexture(); // set default size (and cause initialisation of the pbuffer) declareRenderSize(Size(DEFAULT_SIZE, DEFAULT_SIZE)); // set some states as a one-time thing (because we use a separate context) enablePBuffer(); glEnable(GL_SCISSOR_TEST); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_SECONDARY_COLOR_ARRAY); glDisableClientState(GL_INDEX_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_FOG_COORDINATE_ARRAY); glDisableClientState(GL_EDGE_FLAG_ARRAY); glClearColor(0,0,0,0); disablePBuffer(); }