src
quori_face
PixelBufferObject.cpp
Go to the documentation of this file.
1
#include "
quori_face/PixelBufferObject.hpp
"
2
3
#include <
GL/gl3w.h
>
4
5
#include "
trace.hpp
"
6
7
using namespace
quori_face
;
8
9
PixelBufferObject::PixelBufferObject
(
const
std::size_t
size
)
10
{
11
QUORI_FACE_TRACE
(
glGenBuffers
(2,
handles_
));
12
QUORI_FACE_TRACE
(
glBindBuffer
(
GL_PIXEL_UNPACK_BUFFER
,
handles_
[0]));
13
QUORI_FACE_TRACE
(
glBufferData
(
GL_PIXEL_UNPACK_BUFFER
,
size
, 0,
GL_STREAM_DRAW
));
14
QUORI_FACE_TRACE
(
glBindBuffer
(
GL_PIXEL_UNPACK_BUFFER
,
handles_
[1]));
15
QUORI_FACE_TRACE
(
glBufferData
(
GL_PIXEL_UNPACK_BUFFER
,
size
, 0,
GL_STREAM_DRAW
));
16
QUORI_FACE_TRACE
(
glBindBuffer
(
GL_PIXEL_UNPACK_BUFFER
, 0));
17
}
18
19
PixelBufferObject::~PixelBufferObject
()
20
{
21
QUORI_FACE_TRACE
(
glDeleteBuffers
(2,
handles_
));
22
}
23
24
void
PixelBufferObject::bind
(
const
std::size_t i)
25
{
26
QUORI_FACE_TRACE
(
glBindBuffer
(
GL_PIXEL_UNPACK_BUFFER
,
handles_
[i % 2UL]));
27
}
28
29
void
PixelBufferObject::unbind
()
30
{
31
QUORI_FACE_TRACE
(
glBindBuffer
(
GL_PIXEL_UNPACK_BUFFER
, 0));
32
}
33
34
35
std::uint32_t
PixelBufferObject::getHandle
(
const
std::size_t i)
36
{
37
return
handles_
[i % 2UL];
38
}
size
GLsizeiptr size
Definition:
glcorearb.h:640
GL_STREAM_DRAW
#define GL_STREAM_DRAW
Definition:
glcorearb.h:617
trace.hpp
quori_face::PixelBufferObject::handles_
std::uint32_t handles_[2]
Definition:
PixelBufferObject.hpp:42
quori_face::PixelBufferObject::PixelBufferObject
PixelBufferObject(const std::size_t size)
Definition:
PixelBufferObject.cpp:9
quori_face
Definition:
Cache.hpp:9
gl3w.h
QUORI_FACE_TRACE
#define QUORI_FACE_TRACE(stmt)
Definition:
quori_face/trace.hpp:16
quori_face::PixelBufferObject::getHandle
std::uint32_t getHandle(const std::size_t i)
Definition:
PixelBufferObject.cpp:35
quori_face::PixelBufferObject::bind
void bind(const std::size_t i)
Definition:
PixelBufferObject.cpp:24
GL_PIXEL_UNPACK_BUFFER
#define GL_PIXEL_UNPACK_BUFFER
Definition:
glcorearb.h:949
glDeleteBuffers
#define glDeleteBuffers
Definition:
gl3w.h:831
PixelBufferObject.hpp
glBufferData
#define glBufferData
Definition:
gl3w.h:765
glBindBuffer
#define glBindBuffer
Definition:
gl3w.h:733
quori_face::PixelBufferObject::~PixelBufferObject
~PixelBufferObject()
Definition:
PixelBufferObject.cpp:19
quori_face::PixelBufferObject::unbind
void unbind()
Definition:
PixelBufferObject.cpp:29
glGenBuffers
#define glGenBuffers
Definition:
gl3w.h:897
quori_face
Author(s):
autogenerated on Wed Mar 2 2022 00:53:20