GL Studio C++ Runtime API
texture_palette.h
Go to the documentation of this file.
1/*! \file
2 \brief The disti::TexturePalette class.
3
4 \par Copyright Information
5
6 Copyright (c) 2017 by The DiSTI Corporation.<br>
7 11301 Corporate Blvd; Suite 100<br>
8 Orlando, Florida 32817<br>
9 USA<br>
10 <br>
11 All rights reserved.<br>
12
13 This Software contains proprietary trade secrets of DiSTI and may not be
14reproduced, in whole or part, in any form, or by any means of electronic,
15mechanical, or otherwise, without the written permission of DiSTI. Said
16permission may be derived through the purchase of applicable DiSTI product
17licenses which detail the distribution rights of this content and any
18Derivative Works based on this or other copyrighted DiSTI Software.
19
20 NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26
27 LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34EXCEED FIVE DOLLARS (US$5.00).
35
36 The aforementioned terms and restrictions are governed by the laws of the
37State of Florida and the United States of America.
38
39*/
40#ifndef _TEXTURE_PALETTE_H
41#define _TEXTURE_PALETTE_H
42
43#include "disti_metadata.h"
44#include "dynamic_array.h"
45#include "gls_include.h"
47#include "image.h"
48#include <iostream>
49
50namespace disti
51{
52class FilePathClass;
53
54/// Objects with no texture have a palette index of -1.
55/// Valid texture indeces are zero through some positive number (no max).
56const int NO_TEXTURE = -1;
57
58/// When multiple textures are selected in the Texture Browser.
59/// It is defined here, because it must be different than NO_TEXTURE.
61
62/** Current state of texture in the texture palette */
63typedef enum
64{
65 TEXTURE_UNUSED, /**< The texture slot is unused */
66 TEXTURE_IGNORED, /**< Texture slot does not contain a texture,
67 the user choose to ignore it. It appears UNUSED for most purposes.*/
68 TEXTURE_INVALID, /**< Texture slot contains a texture, but it isn't
69 bound to the GL context */
70 TEXTURE_VALID /**< Texture slot contains a texture, and it is
71 bound to the GL context */
72
74
75/** Enumeration for an image compresion codec
76 */
78{
79public:
80 /// Constructor
81 /// \param callback The function pointer to call when this property changes.
82 /// \param name The name of the property to create.
83 /// \param attribPtr A pointer to the underlying property data.
85
87};
88
89/** A texture palette entry. Keeps track of which textures are assigned to
90 each entry in the texture palette */
92{
93 DistiAttribDict _attribDict;
94
95 TextureState_e status; /**< Status of the texture: UNUSED, INVALID, VALID, IGNORED */
96
97 FilePathClass* _filePath; /**< Path to the texture file */
98 char* _returned_filename; /**< Holds a pointer to the buffer returned by Filename() */
99 bool _supportsNPOTValue;
100
101 void SupportsAllowNPOT();
102
103 void InitMetadata();
104
105public:
106 static GLS_EXPORT bool _defaultGenerateInline; ///< Unused, kept for backward compatibility.
107
108 bool generateInline; ///< True if the image is to be generated as inline code.
109 bool reverseAlpha; ///< True if the alpha channel should be reversed on load.
110 bool isLoadingDeferred; ///< True if loading should be deferred until first draw.
111 Image* texture; ///< Pointer to the texture object itself.
112 long compressedSize; ///< Size of image when compressed with currently set inline CODEC.
113 glsImageCodec codec; ///< CODEC that will be used to compress an inline image.
114 int compressionFactor; ///< Compression factor of the image, used only for JPEG.
115 int desiredLoadWidth; ///< The width that the image should load at. 0 indicates full size. (Editor only)
116 int desiredLoadHeight; ///< The height that the image should load at. 0 indicates full size. (Editor only)
117 int sourceImageWidth; ///< The width of the source image. (pixels) (Editor only)
118 int sourceImageHeight; ///< The height of the source image. (pixels) (Editor only)
119 int sourceImageMemSize; ///< The size of the source image im memory. (bytes) (Editor only)
120 bool useGLTextureCompression; ///< True if the image should be generated to use hardware texture compression. (Editor only)
121
122 bool allowNPOT; ///< Allow Non-power of two texture (do not scale up).
123
125
126 /// Copy constructor
127 /// \param source The object to copy from.
129
131
132 /// Set up the default member values.
134
135 /// Assignment operator
136 /// \param source Tthe object to copy from.
137 /// \return The resulting object (this).
139
140 /// \return The texture load state.
142
143 /// \return The filename relative to the current working directory.
144 GLS_EXPORT const char* Filename() const;
145
146 /// Set the file name relative to the current working directory.
147 /// \param name The new file name to set.
148 GLS_EXPORT void Filename( const char* name );
149
150 /// Sets the texture state to invalid.
152
153 /// Set the texture state to valid.
155
156 /// Sets texture to NULL and status to IGNORED.
158
159 /// \return True if there is no texture object (unused or ignored).
160 GLS_EXPORT bool IsEmpty() const;
161
162 /// \return True if ignored.
163 GLS_EXPORT bool IsIgnored() const;
164
165 /// \return True if invalid or valid (not unused or ignored).
166 GLS_EXPORT bool IsUsed() const;
167
168 /// Writes this object to a stream.
169 /// \param outstr The stream to write to.
170 /// \return The stream in its current state.
171 GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr );
172
173 /// Reads this object from a stream.
174 /// \param instr The stream to read from.
175 /// \return The stream in its current state.
176 GLS_EXPORT std::istream& ReadValue( std::istream& instr );
177};
178
179/** Texture Palette class. Stores a list of textures, each with its own
180 * texture handle. This the textures to be stored separately from the
181 * objects, which allows multiple objects to share the same textures.
182 */
184{
185 /** A texture of a single magenta pixel used for displaying textures that are not valid */
186 Image* _defaultTexture;
187
188 /** A callback that will get called when a texture in the palette has been update.
189 * \param bool True if it was added/update, false if it was removed
190 * \param int The index in the palette that was modified
191 * \param DisplayFrame The frame the palette belongs to
192 */
193 void ( *_paletteUpdateCallback )( bool, int, DisplayFrame* );
194
195 DisplayFrame* _owningDisplayFrame;
196
197 /** A dynamic array of TexturePaletteEntry */
199
200public:
201 /// \return True if the index \a i passed in is a valid texture index. Doesn't imply that a texture exists at that index,
202 /// merely that the index is within the array bounds of the texture palette.
203 /// \param i The index to check.
205
206 /** Create a new texture palette with the indicated number of entries
207 * \param size The number of entries in the palette
208 */
209 GLS_EXPORT explicit TexturePalette( int size = 0 );
210
211 /** Resize texture palette with the indicated number of entries
212 * \param newSize The new number of entries in the palette
213 */
214 GLS_EXPORT void PaletteSize( int newSize );
215
217
218 /// Assignment operator
219 /// \param source The object to copy from.
221
222 /// \return The texture palette entry at index i, expanding the palette to accomodate the index if needed.
223 /// \param i The index of the desired palette entry.
225
226 /// \return The number of textures (whether valid or not) in this texture palette.
227 /// \deprecated Renamed to Count() to match DynamicArray.
228 DISTI_DEPRECATED( "Renamed to Count() to match DynamicArray." )
229 unsigned int size() const { return Count(); }
230
231 /// \return The list of entries for this palette.
232 /// \deprecated Member data has been made private. Use accessor functions like Entry() and Count() instead.
233 DISTI_DEPRECATED( "Member data has been made private. Use accessor functions like Entry() and Count() instead." )
235
236 /// \return The number of textures (whether valid or not) in this texture palette.
237 GLS_EXPORT unsigned int Count() const;
238
239 /** Invalidates all of the textures in the palette, forcing them to be
240 * rebound the next time they are referenced by an object.
241 */
243
244 /** Finds an unused slot in the texture palette.
245 * \return The index of the first unused slot in the palette.
246 */
248
249 /** Returns the filename associated with the texture at the given index.
250 * \param i The index to get the filename from
251 * \return The filename of the texture at that index
252 */
253 GLS_EXPORT const char* TextureFilename( int i );
254
255 /** Sets the filename associated with the texture at the given index.
256 * \param i The index to get the filename from
257 * \param filename The filename to set
258 */
259 GLS_EXPORT void TextureFilename( int i, const char* filename );
260
261 /// Sets the texture at the given index.
262 /// Attempts to load the texture from disk.
263 /// \param i The texture index to load the texture into.
264 /// \param filename The filename to set.
265 /// \param options Image load options (e.g. reverse alpha).
266 /// \param glTexCompress The GlTextureCompression setting for the new Image.
267 /// \param allowNPOT If the image is allowed to be non-power of two (NPOT).
268 /// \param isLoadingDeferred If true, the image will not be loaded from disk until bound.
269 /// \return TRUE if successful else FALSE.
270 GLS_EXPORT bool SetTexture( int i, const char* filename, const Image::LoadOptions& options = Image::LoadOptions(), bool glTexCompress = false, bool allowNPOT = true, bool isLoadingDeferred = true );
271
272 /// Sets the texture at the given index using a TexturePaletteEntry structure.
273 /// This is generally only used in the Editor.
274 /// \param i The texture index to load the texture into.
275 /// \param entry Image generation options, NULL if not setting them.
276 /// \return TRUE if successful else FALSE.
278
279 /// Sets the texture at the given index.
280 /// Does NOT attempt to load a file.
281 /// \param i The texture index to load the texture into.
282 /// \param image An image that will be the texture.
283 /// \return TRUE if successful else FALSE.
284 GLS_EXPORT bool SetTexture( int i, Image* image );
285
286 /// Sets the texture at the given index.
287 /// \param i The index to insert at.
288 /// \param image Structure containing the compressed image data.
289 /// \param isLoadingDeferred If true, the image will not be loaded from disk until bound.
290 /// \return true
291 GLS_EXPORT bool SetInlineTexture( int i, glsInlineImage& image, bool isLoadingDeferred = true );
292
293 /** Disables image sharing for the Image at the given index and
294 * ensures that the index refers to a unique Image instance.
295 * Note: If you want to disable image sharing for an Image that is not
296 * yet in a palette, you should call AllowImageSharing(false) on the Image.
297 * \param index The index of the texture to disable image sharing. The Image must already be loaded in the palette.
298 * \returns true on success
299 * \returns false on failure (Invalid index or Image could not be guarenteed unique)
300 */
302
303 /** Finds a texture based on its filename
304 * \param name The filename of the texture to find
305 * \return The index if found, -1 if not found
306 */
307 GLS_EXPORT int FindTextureByName( const char* name );
308
309 /** Gets the texture state of the texture at the given index.
310 * \param i The index to get the texture state from
311 * \return The state (UNUSED,VALID,INVALID) of the texture
312 */
314
315 /** Returns the width of the texture image in pixels
316 * \param i The index of the texture to get the width of
317 * \return The width of the texture image in pixels
318 */
319 GLS_EXPORT int Width( int i );
320
321 /** Returns the height of the texture image in pixels
322 * \param i The index of the texture to get the height of
323 * \return The height of the texture image in pixels
324 */
325 GLS_EXPORT int Height( int i );
326
327 /** Returns the power of two width of the texture image in pixels
328 * \param i The index of the texture to get the power of two width of
329 * \return The power of two width of the texture image in pixels
330 */
332
333 /** Returns the power of two height of the texture image in pixels
334 * \param i The index of the texture to get the power of two height of
335 * \return The power of two height of the texture image in pixels
336 */
338
339 /** Returns the Texture Coordinate of the upper right corner of the image
340 * computed as (Width/TextureWidth)
341 * \param i The index of the texture
342 * \return The Texture Coordinate of the upper right corner of the image
343 */
344 GLS_EXPORT float TextureCoordX( int i );
345
346 /** Returns the Texture Coordinate of the upper right corner of the image
347 * computed as (Height/TextureHeight)
348 * \param i The index of the texture
349 * \return The Texture Coordinate of the upper right corner of the image
350 */
351 GLS_EXPORT float TextureCoordY( int i );
352
353 /** Invalidate the texture at the given index, causing it to be rebound
354 * the next time it is referencd
355 * \param i The index of the texture
356 */
358
359#ifdef GLES
360 /** Bind the texture at the given index, unless it is already bound. Set
361 * as the texture to be used for texturing polygons
362 * \param i The index of the texture
363 * \param stateManager
364 */
365 GLS_EXPORT void BindTexture( int i, IGlsStateManager* stateManager );
366#else
367 /** Bind the texture at the given index, unless it is already bound. Set
368 * as the texture to be used for texturing polygons
369 * \param i The index of the texture
370 */
371 GLS_EXPORT void BindTexture( int i );
372#endif
373
374 /** Return whether or not texture is bound
375 * \param i The index of the texture
376 * \return boolean result of whether or not texture is bound
377 */
379
380 /** Delete the texture at the given index. Mark the index as unused.
381 * \param i The index of the texture
382 */
384
385 /** Get a pointer to the texture at the given index.
386 * \param i The index of the texture
387 * \return The texture at that index. NULL if there is none.
388 */
390
391 /** \return True if the image is to be generated as inline code
392 * \param i The index of the texture
393 */
395
396 /** \return True if the image is to be generated to use OpenGL texture compression
397 * \param i The index of the texture
398 */
400
401 /** \return True if the image is allowed to be non power of two
402 * \param i The index of the texture
403 */
404 GLS_EXPORT bool AllowNPOT( int i );
405
406 /** \return Size of image when compressed with currently set inline CODEC
407 * \param i The index of the texture
408 */
410
411 /** \return CODEC that will be used to compress an inline image
412 * \param i The index of the texture
413 */
415
416 /** \return Compression factor of the image, used only for JPEG
417 * \param i The index of the texture
418 */
420
421 /** Set True if the image is to be generated as inline code
422 * \param i The index of the texture
423 * \param val
424 */
425 GLS_EXPORT void GenerateInline( int i, bool val );
426
427 /** Set True if the image is to be generated to use OpenGL texture compression
428 * \param i The index of the texture
429 * \param val
430 */
431 GLS_EXPORT void UseGLTextureCompression( int i, bool val );
432
433 /** Set True if the image is allowed to be non power of two
434 * \param i The index of the texture
435 * \param val the value to set allowing non-power of two (NPOT) functionality
436 */
437 GLS_EXPORT void AllowNPOT( int i, bool val );
438
439 /** Set Size of image when compressed with currently set inline CODEC
440 * \param i The index of the texture
441 * \param val
442 */
443 GLS_EXPORT void CompressedSize( int i, long val );
444
445 /** Set CODEC that will be used to compress an inline image
446 * \param i The index of the texture
447 * \param val The codec to set
448 * \param reload Whether or not to reload the image
449 */
450 GLS_EXPORT void Codec( int i, glsImageCodec val, bool reload = true );
451
452 /** Set Compression factor of the image, used only for JPEG
453 * \param i The index of the texture
454 * \param val
455 * \param reload
456 */
457 GLS_EXPORT void CompressionFactor( int i, int val, bool reload = true );
458
459 /** Sets the desired load size for the image.
460 * If the loaded image is larger than the specified dimensions,
461 * it will be scaled down during the load.
462 * \param i The index of the texture
463 * \param width The desired width
464 * \param height The desired height
465 */
466 GLS_EXPORT void DesiredLoadSize( int i, int width, int height );
467
468 /** Reload a texture from disk, then downsize and compress it using the current settings
469 * of the TexturePaletteEntry
470 * \param i The index of the texture to reload
471 */
472 GLS_EXPORT void Reload( int i );
473
474 /** Set mip-mapping state for given texture
475 * \param i The index of the texture to set mipmapping for
476 * \param val The mipmapping state to set
477 */
478 GLS_EXPORT void SetMipMap( int i, bool val );
479
480 /** Compress using the current compression settings for the texture
481 * and scale down to the DesiredLoadSize.
482 * \param i The index of the texture
483 */
485
486 /** Sets up for a callback to be used for reacting to the texture palette items and filenames to be updated.
487 * \param callback A function accepting whether the texture was added/modified(true) or removed(false), the index of it, and the frame this palette belongs to.
488 * \param owningFrame The display frame that this texture palette belongs to.
489 */
490 GLS_EXPORT void SetTexturePaletteCallback( void ( *callback )( bool, int, DisplayFrame* ), DisplayFrame* owningFrame );
491
492 /// Scales down an image to the next power-of-two size where (width <= desiredWidth || height <= desiredHeight), maintains aspect ratio.
493 /// \note This method may be removed from the TexturePalette in the future.
494 /// \param image The image to scale down.
495 /// \param desiredWidth The target width in pixels.
496 /// \param desiredHeight The target height in pixels.
497 /// \return True if operation is successful.
498 static GLS_EXPORT bool DownsizeImage( Image* image, int desiredWidth, int desiredHeight );
499
500 /** The DistiAttributeTexturePalette class for version 2.1 and older (read only). Included for
501 * backwards compatibility with v 2.1
502 */
504 {
505 TexturePalette** _palette;
506
507 public:
508 /// Constructor
509 /// \param palette A pointer to the underlying data.
511
512 // This atttribute is never written
513 virtual bool OkToWrite() const DISTI_METHOD_OVERRIDE { return false; }
514 virtual std::ostream& WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE { return outstr; }
515
516 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE;
517 };
518
519 /** The DistiAttributeTexturePalette class for version 3.0 and later
520 */
522 {
523 TexturePalette** _palette;
524
525 public:
526 /// Constructor
527 /// \param palette A pointer to the underlying data.
529
530 virtual GLS_EXPORT std::ostream& WriteValue( std::ostream& outstr ) DISTI_METHOD_OVERRIDE;
531 virtual GLS_EXPORT std::istream& ReadValue( std::istream& instr ) DISTI_METHOD_OVERRIDE;
533 };
534};
535
536} // namespace disti
537
538#endif
Definition: disti_metadata.h:87
Definition: callback_caller_base.h:56
Definition: display_frame.h:87
Definition: disti_metadata.h:734
Definition: disti_metadata.h:220
Definition: gls_metadata_attributes.h:1976
Definition: texture_palette.h:78
DistiAttributeImageCodecEnum(CallbackMethodCallerBase *callback, const AttributeName &name, glsImageCodec *attribPtr)
Definition: dynamic_array.h:79
Definition: file_path_class.h:63
Definition: gls_state_manager_interface.h:69
Definition: image.h:178
Definition: texture_palette.h:92
int compressionFactor
Compression factor of the image, used only for JPEG.
Definition: texture_palette.h:114
int desiredLoadWidth
The width that the image should load at. 0 indicates full size. (Editor only)
Definition: texture_palette.h:115
bool reverseAlpha
True if the alpha channel should be reversed on load.
Definition: texture_palette.h:109
long compressedSize
Size of image when compressed with currently set inline CODEC.
Definition: texture_palette.h:112
bool isLoadingDeferred
True if loading should be deferred until first draw.
Definition: texture_palette.h:110
const char * Filename() const
TexturePaletteEntry(const TexturePaletteEntry &source)
int desiredLoadHeight
The height that the image should load at. 0 indicates full size. (Editor only)
Definition: texture_palette.h:116
void Filename(const char *name)
void Validate()
Set the texture state to valid.
static bool _defaultGenerateInline
Unused, kept for backward compatibility.
Definition: texture_palette.h:106
bool useGLTextureCompression
True if the image should be generated to use hardware texture compression. (Editor only)
Definition: texture_palette.h:120
int sourceImageMemSize
The size of the source image im memory. (bytes) (Editor only)
Definition: texture_palette.h:119
int sourceImageWidth
The width of the source image. (pixels) (Editor only)
Definition: texture_palette.h:117
void Initialize()
Set up the default member values.
int sourceImageHeight
The height of the source image. (pixels) (Editor only)
Definition: texture_palette.h:118
void Invalidate()
Sets the texture state to invalid.
Image * texture
Pointer to the texture object itself.
Definition: texture_palette.h:111
bool allowNPOT
Allow Non-power of two texture (do not scale up).
Definition: texture_palette.h:122
void Ignore()
Sets texture to NULL and status to IGNORED.
glsImageCodec codec
CODEC that will be used to compress an inline image.
Definition: texture_palette.h:113
std::istream & ReadValue(std::istream &instr)
std::ostream & WriteValue(std::ostream &outstr)
bool generateInline
True if the image is to be generated as inline code.
Definition: texture_palette.h:108
TextureState_e TextureStatus()
Definition: texture_palette.h:141
TexturePaletteEntry & operator=(const TexturePaletteEntry &source)
virtual std::istream & ReadValue(std::istream &instr) override
virtual bool OkToWrite() const override
Definition: texture_palette.h:513
virtual std::ostream & WriteValue(std::ostream &outstr) override
Definition: texture_palette.h:514
DistiAttributeTexturePalette(TexturePalette **palette)
virtual std::istream & ReadValue(std::istream &instr) override
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass) override
virtual std::ostream & WriteValue(std::ostream &outstr) override
Definition: texture_palette.h:184
void PaletteSize(int newSize)
void SetTexturePaletteCallback(void(*callback)(bool, int, DisplayFrame *), DisplayFrame *owningFrame)
void UseGLTextureCompression(int i, bool val)
bool SetTexture(int i, const char *filename, const Image::LoadOptions &options=Image::LoadOptions(), bool glTexCompress=false, bool allowNPOT=true, bool isLoadingDeferred=true)
void DesiredLoadSize(int i, int width, int height)
void Codec(int i, glsImageCodec val, bool reload=true)
static bool DownsizeImage(Image *image, int desiredWidth, int desiredHeight)
TexturePaletteEntry * Entry(int i)
void operator=(TexturePalette &source)
int FindTextureByName(const char *name)
void SetMipMap(int i, bool val)
void CompressionFactor(int i, int val, bool reload=true)
bool GenerateInline(int i)
bool DisableImageSharing(int index)
unsigned int Count() const
TexturePalette(int size=0)
void DeleteTexture(int i)
float TextureCoordX(int i)
void PreviewGenerated(int i)
unsigned int size() const
Definition: texture_palette.h:229
void AllowNPOT(int i, bool val)
DynamicArray< TexturePaletteEntry > & palette
Definition: texture_palette.h:234
void InvalidateTexture(int i)
void BindTexture(int i)
glsImageCodec Codec(int i)
TextureState_e TextureState(int i)
long CompressedSize(int i)
int TextureHeight(int i)
float TextureCoordY(int i)
void CompressedSize(int i, long val)
bool SetInlineTexture(int i, glsInlineImage &image, bool isLoadingDeferred=true)
int CompressionFactor(int i)
bool IsValidIndex(int i)
bool UseGLTextureCompression(int i)
void GenerateInline(int i, bool val)
Image * Texture(int i)
const char * TextureFilename(int i)
The disti metadata.
The disti::DynamicArray class. A templated array of objects capable of dynamically growing.
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:457
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:214
A file for all GL Studio files to include.
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
Defines templated metadata classes for DisplayObjects and other uses.
The Image class. All textures are converted internally into Images.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
const int MULTIPLE_TEXTURES_SELECTED
Definition: texture_palette.h:60
glsImageCodec
Definition: image.h:64
TextureState_e
Definition: texture_palette.h:64
@ TEXTURE_INVALID
Definition: texture_palette.h:68
@ TEXTURE_VALID
Definition: texture_palette.h:70
@ TEXTURE_UNUSED
Definition: texture_palette.h:65
@ TEXTURE_IGNORED
Definition: texture_palette.h:66
const int NO_TEXTURE
Definition: texture_palette.h:56
Definition: image.h:82