15 #ifndef RE_VertexState_h
16 #define RE_VertexState_h
49 void setMapSize(
int nv);
55 int attribute_location);
60 int64 *maskptr =
nullptr);
77 void clearAttrib(
int attribute_location);
104 int64 mem = inclusive ?
sizeof(*this) : 0;
105 mem += myCustomAttribs.getMemoryUsage(
false);
106 mem += myAttribLocs.getMemoryUsage(
false);
107 mem += myTexAttribNames.getMemoryUsage(
false);
108 mem += myAttribIDs.getMemoryUsage(
false);
119 int64 myBoundLocations;
120 int64 myBoundAttributes;
121 int64 myBoundConstants;
122 int64 myBoundTexAttribs;
123 int myUndefAttribIndex;
125 class re_CustomAttrib
129 re_CustomAttrib(
const char *
name,
int loc)
130 : attrib_name(name),
location(loc) {}
166 int attrib_location);
175 int attrib_location);
190 bool checkDirty(
RE_Render *r,
int serial_index);
205 bool hasBoundTBO(
int tex_unit)
const;
211 bool *in_instance_group =
222 static bool texBufferDeleted(
void *,
void *);
224 static void dumpGLVertexState(
RE_Render *r);
228 int64 getMemoryUsage(
bool inclusive)
const;
234 unsigned char *myConstAttribSize;
238 int myNumVertexAttribs;
250 if(myDirtySerial != serial_index)
252 myDirtySerial = serial_index;
253 if(myBoundState >= 0)
273 return (tex_unit < myHasBoundTBO.
entries() && myHasBoundTBO(tex_unit));
virtual bool init(RE_Render *r)=0
int64 getLocationMask() const
UT_StringHolder mode_uniform
int64 getMemoryUsage(bool inclusive) const
static RE_GraphicsDevice getGraphicsDevice()
bool hasBoundTBO(int tex_unit) const
int64 getTextureMask() const
GLint GLenum GLboolean GLsizei stride
int64 getAttributeMask() const
GLuint const GLchar * name
void setVertexStride(int stride)
exint entries() const
Alias of size(). size() is preferred.
int64 getConstantMask() const
FMT_INLINE void print(format_string< T...> fmt, T &&...args)
bool checkDirty(RE_Render *r, int serial_index)
UT_StringHolder samp_uniform