33 NotifyCategoryDecl(gpucommand, EXPORT_CLASS, EXPORT_TEMPL);
35 #define GPU_COMMAND_ENTRIES 32 39 #define PACK_INT_AS_FLOAT 0 59 CMD_remove_sources = 4,
66 inline void push_vec3(
const LVecBase3 &v);
67 inline void push_vec3(
const LVecBase3i &v);
68 inline void push_vec4(
const LVecBase4 &v);
69 inline void push_vec4(
const LVecBase4i &v);
75 void write_to(
const PTA_uchar &dest,
size_t command_index);
76 void write(std::ostream &out)
const;
80 inline float convert_int_to_float(
int v)
const;
83 size_t _current_index;
84 float _data[GPU_COMMAND_ENTRIES];
87 #include "gpuCommand.I" 89 #endif // GPUCOMMAND_H PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
static bool get_uses_integer_packing()
Returns whether integers are packed as floats.
void write_to(const PTA_uchar &dest, size_t command_index)
Writes the GPU command to a given target.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
CommandType
The different types of GPUCommands.
void push_vec4(const LVecBase4 &v)
Appends a 4-component floating point vector to the GPUCommand.
GPUCommand(CommandType command_type)
Constructs a new GPUCommand with the given command type.
void write(std::ostream &out) const
Prints out the GPUCommand to the console.
void push_float(float v)
Appends a float to the GPUCommand.
void push_mat4(const LMatrix4 &v)
Appends a floating point 4x4 matrix to the GPUCommand.
void push_mat3(const LMatrix3 &v)
Appends a floating point 3x3 matrix to the GPUCommand.
void push_vec3(const LVecBase3 &v)
Appends a 3-component floating point vector to the GPUCommand.
Class for storing data to be transferred to the GPU.
void push_int(int v)
RenderPipeline.