1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-01 10:26:12 +03:00
occt/src/OpenGl/OpenGl_AspectText.hxx
kgv bf75be9867 0023544: Texture management in TKOpenGl should be redesigned
Structures Graphic3d_CView, Graphic3d_CStructure, Graphic3d_CGroup become classes and their definitions moved from InterfaceGraphic to Graphic3d.
Introduced new class OpenGl_Texture as replacement for OpenGl_ResourceTexture class and static functions in OpenGl_TextureBox.
Graphic3d_TextureRoot now no more communicate within Graphic3d_GraphicalDriver.
Instead class returns image through GetImage() method.
OpenGl_AspectFace - avoid possible NULL-dereference
OpenGl_Texture::Init() - check gluBuild2DMipmaps() return value
OpenGl_Texture - check GL_BGRA_EXT for compatibility
OpenGl_Texture - scale NPOT image when required
Added more description to Graphic3d_TextureRoot class
OpenGl_Texture - added missing break statement for ImgBGR32 case
OpenGl_Workspace::setTextureParams() - fixed local variable aFilterMin overrides visibility of early declared variable
OpenGl_Workspace::DisableTexture() - reset texture matrix
FTGL do not reset texture matrix and corrupt text could be rendered if custom texture has not identity texture matrix.
2012-12-07 13:58:30 +04:00

76 lines
2.6 KiB
C++

// Created on: 2011-07-13
// Created by: Sergey ZERCHANINOV
// Copyright (c) 2011-2012 OPEN CASCADE SAS
//
// The content of this file is subject to the Open CASCADE Technology Public
// License Version 6.5 (the "License"). You may not use the content of this file
// except in compliance with the License. Please obtain a copy of the License
// at http://www.opencascade.org and read it completely before using this file.
//
// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
//
// The Original Code and all software distributed under the License is
// distributed on an "AS IS" basis, without warranty of any kind, and the
// Initial Developer hereby disclaims all such warranties, including without
// limitation, any warranties of merchantability, fitness for a particular
// purpose or non-infringement. Please see the License for the specific terms
// and conditions governing the rights and limitations under the License.
#ifndef OpenGl_AspectText_Header
#define OpenGl_AspectText_Header
#include <InterfaceGraphic_Graphic3d.hxx>
#include <Font_FontAspect.hxx>
#include <Aspect_TypeOfStyleText.hxx>
#include <Aspect_TypeOfDisplayText.hxx>
#include <OpenGl_Element.hxx>
class OpenGl_AspectText : public OpenGl_Element
{
public:
OpenGl_AspectText();
virtual ~OpenGl_AspectText();
void SetContext (const CALL_DEF_CONTEXTTEXT &AContext);
int IsZoomable() const { return myZoomable; }
float Angle() const { return myAngle; }
Font_FontAspect FontAspect() const { return myFontAspect; }
const char * Font() const { return myFont; }
const TEL_COLOUR & Color() const { return myColor; }
Aspect_TypeOfStyleText StyleType() const { return myStyleType; }
Aspect_TypeOfDisplayText DisplayType() const { return myDisplayType; }
const TEL_COLOUR & SubtitleColor() const { return mySubtitleColor; }
virtual void Render (const Handle(OpenGl_Workspace)& theWorkspace) const;
virtual void Release (const Handle(OpenGl_Context)& theContext);
protected:
void SetFontName (const char *AFont);
protected:
int myZoomable;
float myAngle;
Font_FontAspect myFontAspect;
const char *myFont;
//float mySpace;
//float myExpan;
TEL_COLOUR myColor;
Aspect_TypeOfStyleText myStyleType;
Aspect_TypeOfDisplayText myDisplayType;
TEL_COLOUR mySubtitleColor;
public:
DEFINE_STANDARD_ALLOC
};
#endif //OpenGl_AspectText_Header