Skylicht Engine
Loading...
Searching...
No Matches
IVertexBuffer.h
1// Copyright (C) 2012 Patryk Nadrowski
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __I_VERTEX_BUFFER_H_INCLUDED__
6#define __I_VERTEX_BUFFER_H_INCLUDED__
7
8#include "IReferenceCounted.h"
9#include "irrArray.h"
10#include "IHardwareBuffer.h"
11
12namespace irr
13{
14namespace scene
15{
16 class IVertexBuffer : public virtual IReferenceCounted
17 {
18 public:
19 IVertexBuffer() : HardwareBuffer(0)
20 {
21 }
22
23 virtual ~IVertexBuffer()
24 {
25 if (HardwareBuffer)
26 HardwareBuffer->drop();
27 }
28
29 virtual void clear() = 0;
30
31 virtual void set_used(u32 used) = 0;
32
33 virtual void reallocate(u32 size) = 0;
34
35 virtual u32 allocated_size() const = 0;
36
37 virtual s32 linear_reverse_search(const void* element) const = 0;
38
39 virtual void fill(u32 used) = 0;
40
41 virtual E_HARDWARE_MAPPING getHardwareMappingHint() const = 0;
42
43 virtual void setHardwareMappingHint(E_HARDWARE_MAPPING hardwareMappingHint) = 0;
44
45 virtual void addVertex(const void* vertex) = 0;
46
47 virtual const void* getVertex(u32 id) const = 0;
48
49 virtual void* getVertices() = 0;
50
51 virtual u32 getVertexCount() const = 0;
52
53 virtual u32 getVertexSize() const = 0;
54
55 virtual void setVertex(u32 id, const void* vertex) = 0;
56
57 virtual void setDirty() = 0;
58
59 virtual u32 getChangedID() const = 0;
60
61 video::IHardwareBuffer* getHardwareBuffer() const
62 {
63 return HardwareBuffer;
64 }
65
66 // externalMemoryHandler parameter is used only by hardware buffers.
67 void setHardwareBuffer(video::IHardwareBuffer* hardwareBuffer, bool externalMemoryHandler = false)
68 {
69 if (!externalMemoryHandler && HardwareBuffer)
70 HardwareBuffer->drop();
71
72 HardwareBuffer = hardwareBuffer;
73
74 if (!externalMemoryHandler && HardwareBuffer)
75 HardwareBuffer->grab();
76 }
77
78 protected:
79 video::IHardwareBuffer* HardwareBuffer;
80 };
81}
82}
83
84#endif
bool drop() const
Drops the object. Decrements the reference counter by one.
Definition IReferenceCounted.h:126
void grab() const
Grabs the object. Increments the reference counter by one.
Definition IReferenceCounted.h:96
IReferenceCounted()
Constructor.
Definition IReferenceCounted.h:50
Definition IHardwareBuffer.h:60
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Definition CIndexBuffer.h:13
E_HARDWARE_MAPPING
Definition EHardwareBufferFlags.h:14
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
signed int s32
32 bit signed variable.
Definition irrTypes.h:66