33#ifndef DVD_IM_EMULATION_H_
34#define DVD_IM_EMULATION_H_
114 inline void fromLines(
const std::array<IM::LineDescriptor, N>& lines) {
fromLines(lines.data(), lines.size()); }
116 inline void fromOBBs(
const std::array<IM::OBBDescriptor, N>& obbs) {
fromOBBs(obbs.data(), obbs.size()); }
118 inline void fromBoxes(
const std::array<IM::BoxDescriptor, N>& boxes) {
fromBoxes(boxes.data(), boxes.size()); }
120 inline void fromSpheres(
const std::array<IM::SphereDescriptor, N>& spheres) {
fromSpheres(spheres.data(), spheres.size()); }
122 inline void fromCones(
const std::array<IM::ConeDescriptor, N>& cones) {
fromCones(cones.data(), cones.size()); }
131 template <
typename Data,
size_t N>
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
IMPrimitive replaces immediate mode calls to VB based rendering.
void attribute1f(U32 attribLocation, F32 value)
void getCommandBuffer(GFX::CommandBuffer &commandBufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
void beginBatch(bool reserveBuffers, U32 vertexCount, U32 attributeCount)
GFX::MemoryBarrierCommand _memCmd
void attribute4ub(U32 attribLocation, U8 x, U8 y, U8 z, U8 w)
void fromCones(const std::array< IM::ConeDescriptor, N > &cones)
void setUniformData(const UniformData &constants)
void vertex(F32 x, F32 y, F32 z)
bool hasBatch() const noexcept
friend void DestroyIMP(IMPrimitive *&)
void fromOBB(const IM::OBBDescriptor &box)
void fromOBBs(const std::array< IM::OBBDescriptor, N > &obbs)
PushConstantsStruct _fastData
GFXDevice & context() noexcept
std::array< size_t, to_base(NS_GLIM::GLIM_BUFFER_TYPE::COUNT)> _indexCount
GenericVertexData_ptr _dataBuffer
void attribute1i(U32 attribLocation, I32 value)
PROPERTY_R(Str< 64 >, name)
UniformData _additionalUniforms
void fromSpheres(const std::array< IM::SphereDescriptor, N > &spheres)
void fromLinesInternal(const Line *lines, size_t count)
void fromSpheres(const IM::SphereDescriptor *spheres, size_t count)
void fromCones(const IM::ConeDescriptor *cones, size_t count)
void fromOBBs(const IM::OBBDescriptor *boxes, size_t count)
NS_GLIM::GLIM_BATCH_uptr _imInterface
std::array< bool, to_base(NS_GLIM::GLIM_BUFFER_TYPE::COUNT)> _drawFlags
void attribute4f(const U32 attribLocation, const vec4< F32 > &value)
void setPipelineDescriptor(const PipelineDescriptor &descriptor)
void fromFrustums(const IM::FrustumDescriptor *frustums, size_t count)
void fromBox(const IM::BoxDescriptor &box)
void fromCone(const IM::ConeDescriptor &cone)
void fromLines(const std::array< IM::LineDescriptor, N > &lines)
void attribute4f(U32 attribLocation, F32 x, F32 y, F32 z, F32 w)
void fromBoxes(const IM::BoxDescriptor *boxes, size_t count)
void fromLines(const IM::LineDescriptor &lines)
std::array< Pipeline *, to_base(NS_GLIM::GLIM_BUFFER_TYPE::COUNT)> _pipelines
void attribute3f(U32 attribLocation, vec3< F32 > value)
void attribute2f(U32 attribLocation, vec2< F32 > value)
SamplerDescriptor _sampler
void fromFrustum(const IM::FrustumDescriptor &frustum)
static void InitStaticData()
void setPushConstants(const PushConstantsStruct &fastData)
std::array< U8, to_base(NS_GLIM::GLIM_BUFFER_TYPE::COUNT)> _indexBufferId
void fromBoxes(const std::array< IM::BoxDescriptor, N > &boxes)
void setTexture(const ImageView &texture, SamplerDescriptor sampler)
PipelineDescriptor _basePipelineDescriptor
PROPERTY_RW(bool, forceWireframe, false)
void setUniformDataAndConstants(const UniformData &constants, const PushConstantsStruct &fastData)
void begin(PrimitiveTopology type)
void attribute4ub(const U32 attribLocation, const vec4< U8 > value)
void fromSphere(const IM::SphereDescriptor &sphere)
void vertex(const vec3< F32 > &vert)
An Implementation of the GLIM_Interface.
Handle console commands that start with a forward slash.
constexpr auto to_base(const Type value) -> Type