41 #ifndef INCLUDED_GLS_MIMIC_GROUP_H
42 #define INCLUDED_GLS_MIMIC_GROUP_H
51 #if (defined(GLSGEN_EXPORT_GLSMIMICGROUP) || \
52 defined(GLSGEN_IMPORT_GLSMIMICGROUP) || \
53 defined(GLS_EXPORT_GENERATED) || \
54 defined(GLS_IMPORT_GENERATED)) \
56 # if defined(GLSGEN_EXPORT_GLSMIMICGROUP) || defined(GLS_EXPORT_GENERATED)
57 # define GLSGEN_GLSMIMICGROUP_EXPORT __declspec(dllexport)
59 # define GLSGEN_GLSMIMICGROUP_EXPORT __declspec(dllimport)
62 # define GLSGEN_GLSMIMICGROUP_EXPORT
66 #define LIB_BASE_NAME "gls_mimic_group"
79 GLS_MIMIC_GROUP_STATE = GLS_LAST_INITIALIZER+1,
80 GLS_MIMIC_GROUP_MIMIC_ACTIVE,
81 GLS_MIMIC_GROUP_BOTTOM_LEFT_CORNER,
82 GLS_MIMIC_GROUP_TOP_RIGHT_CORNER,
83 GLS_MIMIC_GROUP_SHOW_OUTLINE,
84 GLS_MIMIC_GROUP_TEXTURE_HEIGHT,
85 GLS_MIMIC_GROUP_TEXTURE_WIDTH,
86 GLS_MIMIC_GROUP_HAS_DEPTH_BUFFER,
87 GLS_MIMIC_GROUP_DEPTH_TEST,
88 GLS_MIMIC_GROUP_GENERATE_MIPMAPS,
89 GLS_MIMIC_GROUP_DRAW_MIMIC_POLYGON,
90 GLS_MIMIC_GROUP_ATTACHED_TEXTURE_INDEX,
91 GLS_MIMIC_GROUP_CLEAR_COLOR,
92 GLS_MIMIC_GROUP_USE_OPAQUE_TEXTURE
130 friend class GlsMimicGroupEditor;
139 GLSGEN_GLSMIMICGROUP_EXPORT
GlsMimicGroup(
bool generateInstance=
false);
141 GLSGEN_GLSMIMICGROUP_EXPORT GlsMimicGroup(
const GlsMimicGroup& that,
const bool generateNames );
185 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void Draw(
void);
190 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetValue(
int spec,va_list &args);
201 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureWidth()
const {
return _textureWidth; }
208 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureWidth(
unsigned int textureWidth);
215 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned int TextureHeight()
const {
return _textureHeight; }
222 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void TextureHeight(
unsigned int textureHeight);
229 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool HasDepthBuffer()
const {
return _hasDepthBuffer; }
236 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void HasDepthBuffer(
bool hasDepthBuffer);
243 virtual GLSGEN_GLSMIMICGROUP_EXPORT
bool GenerateMipMaps()
const {
return _generateMipMaps; }
250 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void GenerateMipMaps(
bool generate);
271 virtual GLSGEN_GLSMIMICGROUP_EXPORT
unsigned char MimicGroupDepthTest()
const {
return _mimicGroupDepthTest; }
357 GLSGEN_GLSMIMICGROUP_EXPORT
bool ShowOutline(
void)
const {
return _showOutline; }
364 GLSGEN_GLSMIMICGROUP_EXPORT
void ShowOutline(
bool showOutline);
371 GLSGEN_GLSMIMICGROUP_EXPORT
bool Redraw(
void)
const {
return _redraw; }
378 GLSGEN_GLSMIMICGROUP_EXPORT
void Redraw(
bool redraw);
385 GLSGEN_GLSMIMICGROUP_EXPORT
bool UseOpaqueTexture(
void)
const {
return _useOpaqueTexture; }
399 virtual GLSGEN_GLSMIMICGROUP_EXPORT
void SetMatrices();
449 GLSGEN_GLSMIMICGROUP_EXPORT
void Invalidate();
511 virtual void SetFromGloData(GlsGloFileAttribute &data);
514 bool _mimicGroupActive;
516 bool _hasDepthBuffer;
517 bool _generateMipMaps;
519 bool _drawMimicGroupPolygon;
520 unsigned char _mimicGroupDepthTest;
521 bool _textureIndexChanged;
525 int _attachedTextureIndex;
526 unsigned int _textureWidth;
527 unsigned int _textureHeight;
528 unsigned int _frameBufferHandle;
529 unsigned int _depthBufferHandle;
530 Image* _mimicGroupTexture;
531 unsigned int _vertexBufferHandle;
534 bool _useOpaqueTexture;
static DisplayObject * CreateInstance()
bool ShowOutline(void) const
Definition: gls_mimic_group.h:357
Definition: dynamic_array.h:63
virtual unsigned char MimicGroupDepthTest() const
Definition: gls_mimic_group.h:271
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:289
void ApplyMimicGroupTextureSettings()
DisplayObject * handle(DisplayEvent *displayEvent)
void LogUnsupportedFeatures()
virtual void PreDrawMimicGroupChildren(const OpenGLMatrices &parentMatrices, Culler &culler)
virtual bool GenerateMipMaps() const
Definition: gls_mimic_group.h:243
void CreateDiffuseTexture()
Definition: gls_mimic_group.h:122
virtual void SetAvailableAttributes(unsigned int value)
The Image class. All textures are converted internally into Images.
bool _overrideMimicGroupActive
Definition: gls_mimic_group.h:533
virtual bool DrawMimicGroupPolygon() const
Definition: gls_mimic_group.h:257
void SetupMimicGroupDepthTest()
virtual bool HasDepthBuffer() const
Definition: gls_mimic_group.h:229
virtual void SetMatrices()
virtual void CopyProperties(DisplayObject *src)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
virtual unsigned int TextureWidth() const
Definition: gls_mimic_group.h:201
Utility for common frame buffer support.
bool Redraw(void) const
Definition: gls_mimic_group.h:371
bool MimicGroupActive(void)
Definition: gls_mimic_group.h:314
Vector TopRightCorner(void) const
Definition: gls_mimic_group.h:350
Definition: gls_color.h:54
bool _frameBuffersEnabledAndAttached
Definition: gls_mimic_group.h:532
virtual unsigned int TextureHeight() const
Definition: gls_mimic_group.h:215
void GetRegionCorners(Vector &topLeftCorner, Vector &topRightCorner, Vector &bottomeRightCorner, Vector &bottomLeftCorner)
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:336
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:385
virtual int AttachedTextureIndex() const
Definition: gls_mimic_group.h:299
virtual glsColor ClearColor() const
Definition: gls_mimic_group.h:285
static bool _unsupportedLogged
Definition: gls_mimic_group.h:536