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;
136 GLSGEN_GLSMIMICGROUP_EXPORT
GlsMimicGroup(
bool generateInstance =
false );
138 GLSGEN_GLSMIMICGROUP_EXPORT GlsMimicGroup(
const GlsMimicGroup& that,
const bool generateNames );
182 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void Draw(
void );
187 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetValue(
int spec, va_list& args );
198 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureWidth()
const {
return _textureWidth; }
205 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureWidth(
unsigned int textureWidth );
212 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureHeight()
const {
return _textureHeight; }
219 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureHeight(
unsigned int textureHeight );
226 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool HasDepthBuffer()
const {
return _hasDepthBuffer; }
233 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void HasDepthBuffer(
bool hasDepthBuffer );
240 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool GenerateMipMaps()
const {
return _generateMipMaps; }
247 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void GenerateMipMaps(
bool generate );
268 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned char MimicGroupDepthTest()
const {
return _mimicGroupDepthTest; }
275 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void MimicGroupDepthTest(
unsigned char depthSettings );
282 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool AutoRedraw()
const {
return _autoRedraw; }
289 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void AutoRedraw(
bool autoRedrawSetting );
368 GLSGEN_GLSMIMICGROUP_EXPORT
bool ShowOutline(
void )
const {
return _showOutline; }
375 GLSGEN_GLSMIMICGROUP_EXPORT
void ShowOutline(
bool showOutline );
382 GLSGEN_GLSMIMICGROUP_EXPORT
bool Redraw(
void )
const {
return _redraw; }
389 GLSGEN_GLSMIMICGROUP_EXPORT
void Redraw(
bool redraw );
396 GLSGEN_GLSMIMICGROUP_EXPORT
bool UseOpaqueTexture(
void )
const {
return _useOpaqueTexture; }
413 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void InsertObject(
DisplayObject* obj,
bool reparent =
true,
bool recalculateBoundingbox =
true,
int loc = -1 ) DISTI_METHOD_OVERRIDE;
423 GLSGEN_GLSMIMICGROUP_EXPORT
void Invalidate() DISTI_METHOD_OVERRIDE;
430 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetMatrices();
539 bool _mimicGroupActive;
542 bool _hasDepthBuffer;
543 bool _generateMipMaps;
545 bool _drawMimicGroupPolygon;
546 unsigned char _mimicGroupDepthTest;
547 bool _textureIndexChanged;
551 int _attachedTextureIndex;
552 unsigned int _textureWidth;
553 unsigned int _textureHeight;
554 unsigned int _frameBufferHandle;
555 unsigned int _depthBufferHandle;
556 Image* _mimicGroupTexture;
557 unsigned int _vertexBufferHandle;
560 bool _useOpaqueTexture;
virtual GlsColor ClearColor() const
Definition: gls_mimic_group.h:296
void Invalidate() DISTI_METHOD_OVERRIDE
static DisplayObject * CreateInstance()
bool ShowOutline(void) const
Definition: gls_mimic_group.h:368
Definition: dynamic_array.h:62
virtual unsigned char MimicGroupDepthTest() const
Definition: gls_mimic_group.h:268
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:276
void ApplyMimicGroupTextureSettings()
virtual bool AutoRedraw() const
Definition: gls_mimic_group.h:282
DisplayObject * handle(DisplayEvent *displayEvent)
void LogUnsupportedFeatures()
virtual void PreDrawMimicGroupChildren(const OpenGLMatrices &parentMatrices, Culler &culler)
virtual bool GenerateMipMaps() const
Definition: gls_mimic_group.h:240
void CreateDiffuseTexture()
Definition: gls_glo_file.h:982
Definition: gls_mimic_group.h:119
virtual void SetAvailableAttributes(unsigned int value)
The Image class. All textures are converted internally into Images.
Definition: gls_painter.h:51
bool _overrideMimicGroupActive
Definition: gls_mimic_group.h:559
virtual bool DrawMimicGroupPolygon() const
Definition: gls_mimic_group.h:254
void SetupMimicGroupDepthTest()
virtual bool HasDepthBuffer() const
Definition: gls_mimic_group.h:226
virtual void SetMatrices()
virtual void CopyProperties(DisplayObject *src)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
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:198
Utility for common frame buffer support.
virtual void PushObject(DisplayObject *obj) DISTI_METHOD_OVERRIDE
bool Redraw(void) const
Definition: gls_mimic_group.h:382
Definition: gls_color.h:53
bool MimicGroupActive(void)
Definition: gls_mimic_group.h:325
Vector TopRightCorner(void) const
Definition: gls_mimic_group.h:361
void SetPainter(GlsPainter *painter) DISTI_METHOD_OVERRIDE
bool _frameBuffersEnabledAndAttached
Definition: gls_mimic_group.h:558
virtual unsigned int TextureHeight() const
Definition: gls_mimic_group.h:212
virtual void SetValue(int spec, va_list &args)
void CreateDepthTexture()
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
bool RequiredGlFeaturesSupported()
Vector BottomLeftCorner(void)
Definition: gls_mimic_group.h:347
void CreateMimicGroupQuad()
virtual DisplayObject * CloneObject(bool generateNames=false)
Macros and helper code to determine what subset of C++11/14/17 is available.
bool VertexBuffersAreSupported()
Definition: bmpimage.h:46
bool UseOpaqueTexture(void) const
Definition: gls_mimic_group.h:396
virtual int AttachedTextureIndex() const
Definition: gls_mimic_group.h:310
void GetRegionCorners(Vector &topLeftCorner, Vector &topRightCorner, Vector &bottomRightCorner, Vector &bottomLeftCorner)
static bool _unsupportedLogged
Definition: gls_mimic_group.h:562