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.
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Amigas 'defines' Grupos Páginas
moFBManager.h
Ir a la documentación de este archivo.
1 /*******************************************************************************
2 
3  moFBManager.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  Andrés Colubri
29 
30 *******************************************************************************/
31 
32 #ifndef __MO_FBMANAGER_H__
33 #define __MO_FBMANAGER_H__
34 
35 #include "moTypes.h"
36 #include "moText.h"
37 #include "moLock.h"
38 #include "moFBO.h"
39 #include "moTexture.h"
40 #include "moResourceManager.h"
41 
52 {
53  public:
57  moFBManager();
61  virtual ~moFBManager();
62 
66  virtual MOboolean Init();
70  virtual MOboolean Finish();
71 
76  MOuint CreateFBO();
82  MOboolean DeleteFBO(MOuint p_fbo);
87  MOuint GetFBOCount() { return m_fbo_array.Count(); }
93  moFBO* GetFBO(MOuint p_fbo) { return m_fbo_array.Get(p_fbo); }
94 
104  MOint GetFBO(MOuint p_target, MOuint p_internal_format, MOuint p_width, MOuint p_height);
105 
109  void BindScreenFB();
113  void UnbindScreenFB();
114 
120  MOboolean BindFBO(MOuint p_fbo);
127  MOboolean BindFBO(MOuint p_fbo, MOuint p_attach_point);
135  MOboolean BindFBO(MOuint p_fbo, MOuint p_num_attach_points, MOuint *p_attach_point_list);
136 
144  MOboolean AddTexture(MOuint p_fbo, moTexture* p_pTex, MOuint &p_attach_point);
152  MOboolean AttachTexture(MOuint p_fbo, moTexture* p_pTex, MOuint p_attach_point);
153 
159  void SetDrawTexture(MOuint p_attach_point);
166  void SetDrawTextures(MOuint p_num_attach_points, MOuint *p_attach_point_list);
172  void SetReadTexture(MOuint p_attach_point);
173 
182  void SetDrawTextureByGLId(MOuint p_glid, MOuint p_width, MOuint p_height, const moTexParam& p_param, MOuint p_def_attach_point = 0);
191  void SetDrawTexturesByGLId(MOuint p_num_glids, MOuint *p_glid_list, MOuint p_width, MOuint p_height, const moTexParam& p_param);
200  void SetReadTextureByGLId(MOuint p_glid, MOuint p_width, MOuint p_height, const moTexParam& p_param, MOuint p_def_attach_point = 0);
201 
209  MOint SetDrawTexture(moTexture* p_pTex, MOuint p_def_attach_point = 0);
215  MOint SetDrawTextures(moTextureArray &p_tex_array);
223  MOint SetReadTexture(moTexture* p_pTex, MOuint p_def_attach_point = 0);
224 
229  void UnbindFBO();
233  void UnbindAllFBO();
234  private:
235  moGLManager* m_glmanager;
236 
237  moFBOArray m_fbo_array;
238 
239  // Index of the currently selected fbo, -1 if the screen framebuffer is binded.
240  MOint m_current_fbo;
241 
242  MOint m_fbo_stack_index;
243  MOuint m_fbo_stack[MO_MAX_FBO_STACK_SIZE];
244  MOuint m_draw_buffer_stack[MO_MAX_FBO_STACK_SIZE];
245  MOuint m_read_buffer_stack[MO_MAX_FBO_STACK_SIZE];
246 
247  GLint m_screen_read_buffer;
248  GLint m_screen_draw_buffer;
249 
250  GLenum m_color_buffers[MO_MAX_COLOR_ATTACHMENTS_EXT];
251 
252  void GetScreenBuffers();
253 };
254 
255 #include "moGLManager.h"
256 
257 #endif
258 
Parámetros internos de una textura.
Definition: moTypes.h:543
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 )
#define MOboolean
Definition: moTypes.h:385
MOuint GetFBOCount()
Definition: moFBManager.h:87
#define LIBMOLDEO_API
Definition: moTypes.h:180
virtual MOboolean Init()
Definition: moFBO.h:60
#define MO_MAX_COLOR_ATTACHMENTS_EXT
Definition: moFBO.h:46
#define MOint
Definition: moTypes.h:388
clase base para el manejo de una textura
Definition: moTexture.h:78
moFBO * GetFBO(MOuint p_fbo)
Definition: moFBManager.h:93
manejador de operaciones comunes de Open GL
Definition: moGLManager.h:154
virtual MOboolean Finish()
#define MO_MAX_FBO_STACK_SIZE
Definition: moFBO.h:40
#define MOuint
Definition: moTypes.h:387