41 #ifndef INCLUDED_GLS_MIMIC_GROUP_H
42 #define INCLUDED_GLS_MIMIC_GROUP_H
51 #if( defined( GLSGEN_EXPORT_GLSMIMICGROUP ) || defined( GLSGEN_IMPORT_GLSMIMICGROUP ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
52 && defined( _MSC_VER )
53 # if defined( GLSGEN_EXPORT_GLSMIMICGROUP ) || defined( GLS_EXPORT_GENERATED )
54 # define GLSGEN_GLSMIMICGROUP_EXPORT __declspec( dllexport )
56 # define GLSGEN_GLSMIMICGROUP_EXPORT __declspec( dllimport )
59 # define GLSGEN_GLSMIMICGROUP_EXPORT
63 #define LIB_BASE_NAME "gls_mimic_group"
76 GLS_MIMIC_GROUP_STATE = GLS_LAST_INITIALIZER + 1,
77 GLS_MIMIC_GROUP_MIMIC_ACTIVE,
78 GLS_MIMIC_GROUP_BOTTOM_LEFT_CORNER,
79 GLS_MIMIC_GROUP_TOP_RIGHT_CORNER,
80 GLS_MIMIC_GROUP_SHOW_OUTLINE,
81 GLS_MIMIC_GROUP_TEXTURE_HEIGHT,
82 GLS_MIMIC_GROUP_TEXTURE_WIDTH,
83 GLS_MIMIC_GROUP_HAS_DEPTH_BUFFER,
84 GLS_MIMIC_GROUP_DEPTH_TEST,
85 GLS_MIMIC_GROUP_GENERATE_MIPMAPS,
86 GLS_MIMIC_GROUP_DRAW_MIMIC_POLYGON,
87 GLS_MIMIC_GROUP_ATTACHED_TEXTURE_INDEX,
88 GLS_MIMIC_GROUP_CLEAR_COLOR,
89 GLS_MIMIC_GROUP_USE_OPAQUE_TEXTURE,
90 GLS_MIMIC_GROUP_MIMIC_AUTO_REDRAW
127 friend class GlsMimicGroupEditor;
128 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
138 GLSGEN_GLSMIMICGROUP_EXPORT
GlsMimicGroup(
bool generateInstance =
false );
140 GLSGEN_GLSMIMICGROUP_EXPORT GlsMimicGroup(
const GlsMimicGroup& that,
const bool generateNames );
157 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetAvailableAttributes(
unsigned int value ) DISTI_METHOD_OVERRIDE;
184 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void Draw(
void ) DISTI_METHOD_OVERRIDE;
189 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetValue(
int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
200 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureWidth()
const {
return _textureWidth; }
207 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureWidth(
unsigned int textureWidth );
214 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureHeight()
const {
return _textureHeight; }
221 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureHeight(
unsigned int textureHeight );
228 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool HasDepthBuffer()
const {
return _hasDepthBuffer; }
235 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void HasDepthBuffer(
bool hasDepthBuffer );
242 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool GenerateMipMaps()
const {
return _generateMipMaps; }
249 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void GenerateMipMaps(
bool generate );
270 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned char MimicGroupDepthTest()
const {
return _mimicGroupDepthTest; }
277 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void MimicGroupDepthTest(
unsigned char depthSettings );
284 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool AutoRedraw()
const {
return _autoRedraw; }
291 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void AutoRedraw(
bool autoRedrawSetting );
370 GLSGEN_GLSMIMICGROUP_EXPORT
bool ShowOutline(
void )
const {
return _showOutline; }
377 GLSGEN_GLSMIMICGROUP_EXPORT
void ShowOutline(
bool showOutline );
384 GLSGEN_GLSMIMICGROUP_EXPORT
bool Redraw(
void )
const {
return _redraw; }
391 GLSGEN_GLSMIMICGROUP_EXPORT
void Redraw(
bool redraw );
398 GLSGEN_GLSMIMICGROUP_EXPORT
bool UseOpaqueTexture(
void )
const {
return _useOpaqueTexture; }
415 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void InsertObject(
DisplayObject* obj,
bool reparent =
true,
bool recalculateBoundingbox =
true,
int loc = -1 ) DISTI_METHOD_OVERRIDE;
425 GLSGEN_GLSMIMICGROUP_EXPORT
void Invalidate() DISTI_METHOD_OVERRIDE;
430 GLSGEN_GLSMIMICGROUP_EXPORT
bool IsInvalidated() const DISTI_METHOD_OVERRIDE;
437 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetMatrices();
543 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetFromGloData(
GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
546 bool _mimicGroupActive;
549 bool _hasDepthBuffer;
550 bool _generateMipMaps;
552 bool _drawMimicGroupPolygon;
553 unsigned char _mimicGroupDepthTest;
554 bool _textureIndexChanged;
558 int _attachedTextureIndex;
559 unsigned int _textureWidth;
560 unsigned int _textureHeight;
561 unsigned int _frameBufferHandle;
562 unsigned int _depthBufferHandle;
563 Image* _mimicGroupTexture;
564 unsigned int _vertexBufferHandle;
567 bool _useOpaqueTexture;
virtual GlsColor ClearColor() const
Definition: gls_mimic_group.h:298
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:436
void Invalidate() DISTI_METHOD_OVERRIDE
static DisplayObject * CreateInstance()
bool ShowOutline(void) const
Definition: gls_mimic_group.h:370
Definition: dynamic_array.h:66
virtual unsigned char MimicGroupDepthTest() const
Definition: gls_mimic_group.h:270
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:471
void ApplyMimicGroupTextureSettings()
virtual bool AutoRedraw() const
Definition: gls_mimic_group.h:284
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
void LogUnsupportedFeatures()
virtual void PreDrawMimicGroupChildren(const OpenGLMatrices &parentMatrices, Culler &culler)
virtual bool GenerateMipMaps() const
Definition: gls_mimic_group.h:242
void CreateDiffuseTexture()
Definition: gls_glo_file.h:988
Definition: gls_mimic_group.h:119
The Image class. All textures are converted internally into Images.
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
Definition: gls_painter.h:51
bool _overrideMimicGroupActive
Definition: gls_mimic_group.h:566
virtual bool DrawMimicGroupPolygon() const
Definition: gls_mimic_group.h:256
void SetupMimicGroupDepthTest()
virtual bool HasDepthBuffer() const
Definition: gls_mimic_group.h:228
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual void SetMatrices()
virtual void InsertObject(DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1) DISTI_METHOD_OVERRIDE
virtual unsigned int TextureWidth() const
Definition: gls_mimic_group.h:200
Utility for common frame buffer support.
virtual void PushObject(DisplayObject *obj) DISTI_METHOD_OVERRIDE
bool Redraw(void) const
Definition: gls_mimic_group.h:384
Definition: gls_color.h:53
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
bool MimicGroupActive(void)
Definition: gls_mimic_group.h:327
Vector TopRightCorner(void) const
Definition: gls_mimic_group.h:363
void SetPainter(GlsPainter *painter) DISTI_METHOD_OVERRIDE
bool _frameBuffersEnabledAndAttached
Definition: gls_mimic_group.h:565
virtual unsigned int TextureHeight() const
Definition: gls_mimic_group.h:214
virtual void Draw(void) DISTI_METHOD_OVERRIDE
void CreateDepthTexture()
DisplayObject * handle(DisplayEvent *displayEvent) DISTI_METHOD_OVERRIDE
bool RequiredGlFeaturesSupported()
Vector BottomLeftCorner(void)
Definition: gls_mimic_group.h:349
void CreateMimicGroupQuad()
Macros and helper code to determine what subset of C++11/14/17 is available.
bool VertexBuffersAreSupported()
Definition: bmpimage.h:46
bool IsInvalidated() const DISTI_METHOD_OVERRIDE
bool UseOpaqueTexture(void) const
Definition: gls_mimic_group.h:398
virtual int AttachedTextureIndex() const
Definition: gls_mimic_group.h:312
void GetRegionCorners(Vector &topLeftCorner, Vector &topRightCorner, Vector &bottomRightCorner, Vector &bottomLeftCorner)
static bool _unsupportedLogged
Definition: gls_mimic_group.h:569