DI-Guy SDK Documentation  13.8
diguyOglGraphicsMesh.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2024 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 #pragma once
7 
8 // needed for function prototypes
9 #include <GL/glew.h>
10 #include <GL/gl.h>
11 
12 #include <diguyGraphicsMesh.h>
13 class diguyGraphicsVertexData;
14 
15 
32 {
33 
34 public:
35 
36  diguyOglGraphicsMesh(void* internal_data);
37 
38  virtual void build() override;
39  virtual void unbuild() override;
40  virtual void draw(diguyDrawCallData* draw_data) override;
41 
42 
43  static int s_nverts;
44  static int s_ntris;
45  static int s_nvbos;
46 
47  static int s_ntris_drawn;
48  static int s_nverts_drawn;
49  static int s_nvbos_drawn;
50  static int s_skinned_vbos_drawn;
51  static int s_rigid_vbos_drawn;
52 
53 protected:
55  void download_to_gpu();
56 
57  virtual void draw_fixed_function_mesh();
58 
59 protected:
60 
66 
69  GLuint m_vertex_array_object;
71 
72  GLenum m_gl_index_type;
73 
74 };
75 
76 
82 
diguyGraphicsMesh * diguyOglGraphicsMesh_create_func(void *internal_data)
Create function declaration.
GLuint m_index_buffer
Definition: diguyOglGraphicsMesh.h:66
static int s_nvbos_drawn
Definition: diguyOglGraphicsMesh.h:47
diguyOglGraphicsMesh(void *internal_data)
static int s_nverts_drawn
Definition: diguyOglGraphicsMesh.h:46
static int s_rigid_vbos_drawn
Definition: diguyOglGraphicsMesh.h:49
This class is part of the DI-Guy Graphics API.
Definition: diguyOglGraphicsMesh.h:30
int m_is_skinned_mesh
Variables for data generated during the Build Stage.
Definition: diguyOglGraphicsMesh.h:62
static int s_skinned_vbos_drawn
Definition: diguyOglGraphicsMesh.h:48
A class that represents a shared mesh object.
Definition: diguyGraphicsMesh.h:87
GLuint m_blend_shape_ssbo_object
Definition: diguyOglGraphicsMesh.h:68
virtual void build() override
This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be crea...
GLuint m_vertex_buffer
Definition: diguyOglGraphicsMesh.h:65
A struct that represents the information that diguy puts together for an immediate mode draw call...
Definition: diguyGraphicsMesh.h:37
GLuint m_vertex_array_object
Definition: diguyOglGraphicsMesh.h:67
GLenum m_gl_index_type
Definition: diguyOglGraphicsMesh.h:70
void download_to_gpu()
helper function for sending data during draw
virtual void draw_fixed_function_mesh()
static int s_nvbos
Definition: diguyOglGraphicsMesh.h:43
int m_has_tangents
Definition: diguyOglGraphicsMesh.h:63
virtual void unbuild() override
This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be dest...
static int s_nverts
Definition: diguyOglGraphicsMesh.h:41
virtual void draw(diguyDrawCallData *draw_data) override
This function will be called by DI-Guy when the mesh should be drawn.
static int s_ntris_drawn
Definition: diguyOglGraphicsMesh.h:45
static int s_ntris
Definition: diguyOglGraphicsMesh.h:42