libmoldeo (Moldeo 1.0 Core)  1.0
libmoldeo es el conjunto de objetos y funciones, que permiten ejecutar las operaciones básicas de la plataforma Moldeo, y que compone su núcleo.
moTextureManager.h
Ir a la documentación de este archivo.
1 /*******************************************************************************
2 
3  moTextureManager.h
4 
5  ****************************************************************************
6  * *
7  * This source is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * This code is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
15  * General Public License for more details. *
16  * *
17  * A copy of the GNU General Public License is available on the World *
18  * Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
19  * obtain it by writing to the Free Software Foundation, *
20  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21  * *
22  ****************************************************************************
23 
24  Copyright(C) 2006 Fabricio Costa
25 
26  Authors:
27  Fabricio Costa
28  Andres Colubri
29 
30 *******************************************************************************/
31 
32 #ifndef __MO_TEXTURE_MANAGER_H
33 #define __MO_TEXTURE_MANAGER_H
34 
35 #include "moTexture.h"
36 #include "moResourceManager.h"
37 #include <moFileManager.h>
38 
40 
42 
44 
53 };
54 
56 
57  public:
58  moTextureBuffer( int slots=0 );
59  virtual ~moTextureBuffer();
60 
61  virtual MOboolean Init();
62  virtual MOboolean Init( moText p_foldername, moText p_bufferformat, moResourceManager* p_pResourceManager );
63  virtual MOboolean Init( moText p_foldername, moTextureBufferFormat p_bufferformat, int p_pattern_width, int p_pattern_height, moResourceManager* p_pResourceManager );
64  virtual MOboolean Finish();
65 
66  virtual int GetFrame( MOuint p_i );
67 
68  virtual void ReleaseFrame( MOuint p_i );
69 
70  virtual moTextureMemory* GetTexture( MOuint p_i );
71 
72  MOboolean UpdateImages( int maxfiles = -1 );
73 
74  MOboolean LoadCompleted();
75  int GetImagesProcessed() { return m_ImagesProcessed; }
76 
77  MOboolean LoadImage( moText p_ImageName, moBitmap* pImage, int indeximage );
78 
79  moText GetBufferPath() { return m_BufferPath; }
80  moText GetBufferFormat() { return m_BufferFormat; }
81 
82  moText GetName() { return m_FolderName; }
83 
84  moTextureFrames& GetBufferLevels( int L, int C );
85  moTextureFrames& GetBufferPatterns( moTexture* p_ImageReference, int x, int y, int width=0, int height=0 );
86  moTextureFrames& GetBufferPatterns( const moTexture& p_ImageReference, int x, int y, int width=0, int height=0 );
87  MOuint GetTextureArray( int width, int height, int levels, bool force_load = false );
88 
90 
95 
96  //size of max_luminance
98 
99  private:
100 
103 
107 
108 
112 
114 
115  moTextureFrames m_Frames;
117 
120  moTextureFrames** m_pBufferLevels;
121  moTextureFrames* m_pBufferPatterns;
122 
123 };
124 
126 
128 
129 
130 
140 {
141  public:
142 
147 
151  virtual ~moTextureManager();
152 
156  virtual MOboolean Init();
157 
161  virtual MOboolean Finish();
162 
170  MOint GetTextureMOId(moParam *param, MOboolean p_create_tex);
171 
175  MOint GetTextureMOId(moValue *value, MOboolean p_create_tex);
176 
177 
186  MOint GetTextureMOId(moText p_name, MOboolean p_create_tex, bool p_refresh=false );
187 
193  MOint GetTextureMOId(MOuint p_glid);
194 
203  MOint GetTextureBuffer( moText p_foldername, MOboolean p_create_tex = true, moText p_bufferformat = "JPGAVERAGE" );
204 
205  moTextureBuffer* GetTextureBuffer( int idx );
206 
214  MOint AddTexture(MOuint p_type, moText p_name, moTexParam p_tex_param = MODefTex2DParams);
215 
221  MOint AddTexture(moParam* p_param);
222 
231  MOint AddTexture(moValue* p_value);
232 
236  MOint AddTexture(moText p_name, MOuint p_width, MOuint p_height, moTexParam p_tex_param = MODefTex2DParams);
237 
250  MOint AddTexture(moText p_name, MOuint p_width, MOuint p_height, GLvoid* p_buffer, GLenum p_pixel_format = GL_RGBA, GLenum p_pixel_type = GL_UNSIGNED_BYTE, moTexParam p_tex_param = MODefTex2DParams);
251 
257  MOint AddTexture(moText p_filename);
258 
264  MOint AddTextureBuffer( moText p_foldername, moText p_bufferformat = "JPGAVERAGE" );
265 
266 
272  MOboolean DeleteTexture(MOuint p_moid);
273 
278  MOuint GetTextureCount() { return m_textures_array.Count(); }
279 
285  moTexture* GetTexture(MOuint p_moid) { return m_textures_array[p_moid]; }
286 
292  MOint GetType(MOuint p_moid);
293 
299  MOuint GetGLId(MOuint p_moid);
300 
308  moText GetName(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetName() : moText(""); }
309 
315  MOint GetWidth(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetWidth() : MO_UNDEFINED; }
316 
322  MOint GetHeight(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetHeight() : MO_UNDEFINED; }
323 
329  MOint GetDataWidth(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetDataWidth() : MO_UNDEFINED; }
330 
336  MOint GetDataHeight(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetDataHeight() : MO_UNDEFINED; }
337 
345  MOint GetComponents(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetComponents() : MO_UNDEFINED; }
346 
352  MOlong GetTexelCount(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetTexelCount() : MO_UNDEFINED; }
353 
360  MOlong GetDataTexelCount(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetDataTexelCount() : MO_UNDEFINED; }
361 
367  MOfloat GetMaxCoordS(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetMaxCoordS() : MO_UNDEFINED; }
368 
374  MOfloat GetMaxCoordT(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetMaxCoordT() : MO_UNDEFINED; }
375 
381  moTexParam GetTexParam(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetTexParam() : MOUndefinedTex; }
382 
388  GLenum GetTexTarget(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetTexTarget() : MO_UNDEFINED; }
389 
396  GLenum GetTexInternalFormat(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetTexInternalFormat() : MO_UNDEFINED; }
397 
404  GLint GetMinFilter(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetMinFilter() : MO_UNDEFINED; }
405 
411  GLint GetMagFilter(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetMagFilter() : MO_UNDEFINED; }
412 
419  GLint GetWrapS(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetWrapS() : MO_UNDEFINED; }
420 
427  GLint GetWrapT(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetWrapT() : MO_UNDEFINED; }
428 
434  moFBO* GetFBO(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetFBO() : NULL; }
435 
441  MOint GetFBOAttachPoint(MOuint p_moid) { return ValidTexture(p_moid) ? m_textures_array[p_moid]->GetFBOAttachPoint() : MO_UNDEFINED; }
442 
448  MOboolean ValidTexture(MOuint p_moid) { return m_textures_array[p_moid] != NULL; }
449 
454  MOuint GetTypeForFile(moText p_filename);
455 
456  void RefreshAll();
457 
458  virtual void Update(moEventList *Events);
459 
460 
462 
463 
464  protected:
467  moTextureArray m_textures_array;
468 
469  moTextureBuffers m_textures_buffers;
470 
471 
472  moTexture* CreateTexture(MOuint p_type, moText p_name, moTexParam p_param = MODefTex2DParams);
473  MOboolean CreateMultipleTex(moTextureMultiple* p_tex_mult, moParam* p_param);
474  MOboolean CreateMultipleTex(moTextureMultiple* p_tex_mult, moValue* p_value);
475 };
476 
477 
478 #endif
479 
void moBitmap
Definition: moTexture.h:44
moTexParam GetTexParam(MOuint p_moid)
MOint GetHeight(MOuint p_moid)
Valor de un Parámetro.
Definition: moValue.h:501
Parámetros internos de una textura.
Definition: moTypes.h:543
moTextureArray m_textures_array
moTextureBufferFormat
Buffer de imágenes.
Recurso ( objeto para cargar y manipular objetos físicos de datos de imágenes, audio, video, 3d, 2d, fuentes, shaders y de cualquier otro tipo extendible por un plugin )
MOint GetDataWidth(MOuint p_moid)
virtual MOboolean Finish()
Finaliza el objeto, libera recursos.
Definition: moAbstract.cpp:147
#define MO_UNDEFINED
Definition: moTypes.h:379
MOfloat GetMaxCoordS(MOuint p_moid)
#define MOboolean
Definition: moTypes.h:385
const moTexParam MODefTex2DParams
Parámetros internos predeterminados de una textura.
Definition: moTypes.h:562
moGLManager * m_glmanager
moText GetBufferFormat()
EACH IMAGE OF THE BUFFER IS ANALIZED (HISTOGRAM LEVELS)
#define MObyte
Definition: moTypes.h:400
moTextureFrames m_Frames
Clase base abstracta de donde deben derivar los objetos [virtual pura].
Definition: moAbstract.h:191
virtual MOboolean Init()
Inicializa el objeto.
Definition: moAbstract.cpp:141
moTextureBuffer * moTextureBufferPtr
MOboolean m_bLoadCompleted
GLenum GetTexInternalFormat(MOuint p_moid)
moFBManager * m_fbmanager
#define LIBMOLDEO_API
Definition: moTypes.h:180
#define MOfloat
Definition: moTypes.h:403
virtual MOboolean Init()
Definition: moFBO.h:60
Lista de eventos.
Definition: moEventList.h:139
clase de para manejar textos
Definition: moText.h:75
moTexture * GetTexture(MOuint p_moid)
GLint GetWrapT(MOuint p_moid)
#define MOlong
Definition: moTypes.h:391
MOint GetComponents(MOuint p_moid)
moDeclareExportedDynamicArray(moTextureFramePtr, moTextureFrames)
moTextureBuffers m_textures_buffers
moResourceManager * m_pResourceManager
MOint GetWidth(MOuint p_moid)
moFBO * GetFBO(MOuint p_moid)
moText0 moText
Definition: moText.h:291
#define MOint
Definition: moTypes.h:388
GLint GetWrapS(MOuint p_moid)
MOboolean ValidTexture(MOuint p_moid)
MOfloat GetMaxCoordT(MOuint p_moid)
clase base para el manejo de una textura
Definition: moTexture.h:78
MOint GetFBOAttachPoint(MOuint p_moid)
moDirectory * m_pDirectory
Administrador de recursos.
virtual void Update(moEventList *p_EventList)
moText GetName(MOuint p_moid)
GLint GetMagFilter(MOuint p_moid)
moTextureFrames * m_pBufferPatterns
manejador de operaciones comunes de Open GL
Definition: moGLManager.h:154
MOint GetDataHeight(MOuint p_moid)
virtual MOboolean Finish()
Secuencia de texturas.
Definition: moTexture.h:748
const moTexParam MOUndefinedTex
Parámetros internos predeterminados de una textura no identificados.
Definition: moTypes.h:580
moText GetBufferPath()
moMoldeoObjectType GetType() const
#define MOuint
Definition: moTypes.h:387
MOlong GetDataTexelCount(MOuint p_moid)
clase base para el manejo de una textura con su copia comprimida en memoria
Definition: moTexture.h:442
moTextureFrames ** m_pBufferLevels
moTextureMemory * moTextureFramePtr
GLint GetMinFilter(MOuint p_moid)
EACH IMAGE OF THE BUFFER IS ANALIZED IN A REDUCED PATTERN.
GLenum GetTexTarget(MOuint p_moid)
MOlong GetTexelCount(MOuint p_moid)