Blender
V3.3
source
blender
gpu
opengl
gl_immediate.hh
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later
2
* Copyright 2016 by Mike Erwin. All rights reserved. */
3
10
#pragma once
11
12
#include "
MEM_guardedalloc.h
"
13
14
#include "
glew-mx.h
"
15
16
#include "
gpu_immediate_private.hh
"
17
18
namespace
blender::gpu
{
19
20
/* size of internal buffer */
21
#define DEFAULT_INTERNAL_BUFFER_SIZE (4 * 1024 * 1024)
22
23
class
GLImmediate
:
public
Immediate
{
24
private
:
25
/* Use two buffers for strict and non-strict vertex count to
26
* avoid some huge driver slowdown (see T70922).
27
* Use accessor functions to get / modify. */
28
struct
{
30
GLuint
vbo_id
= 0;
32
size_t
buffer_offset
= 0;
34
size_t
buffer_size
= 0;
35
} buffer, buffer_strict;
37
size_t
bytes_mapped_ = 0;
39
GLuint vao_id_ = 0;
40
41
public
:
42
GLImmediate
();
43
~GLImmediate
();
44
45
uchar
*
begin
()
override
;
46
void
end
()
override
;
47
48
private
:
49
GLuint &
vbo_id
()
50
{
51
return
strict_vertex_len
? buffer_strict.vbo_id : buffer.vbo_id;
52
};
53
54
size_t
&
buffer_offset
()
55
{
56
return
strict_vertex_len
? buffer_strict.buffer_offset : buffer.buffer_offset;
57
};
58
59
size_t
&
buffer_size
()
60
{
61
return
strict_vertex_len
? buffer_strict.buffer_size : buffer.buffer_size;
62
};
63
};
64
65
}
// namespace blender::gpu
uchar
unsigned char uchar
Definition:
BLI_sys_types.h:70
MEM_guardedalloc.h
Read Guarded memory(de)allocation.
blender::gpu::GLImmediate
Definition:
gl_immediate.hh:23
blender::gpu::GLImmediate::end
void end() override
Definition:
gl_immediate.cc:120
blender::gpu::GLImmediate::buffer_size
size_t buffer_size
Definition:
gl_immediate.hh:34
blender::gpu::GLImmediate::buffer_offset
size_t buffer_offset
Definition:
gl_immediate.hh:32
blender::gpu::GLImmediate::begin
uchar * begin() override
Definition:
gl_immediate.cc:64
blender::gpu::GLImmediate::GLImmediate
GLImmediate()
Definition:
gl_immediate.cc:27
blender::gpu::GLImmediate::~GLImmediate
~GLImmediate()
Definition:
gl_immediate.cc:50
blender::gpu::GLImmediate::vbo_id
GLuint vbo_id
Definition:
gl_immediate.hh:30
blender::gpu::Immediate
Definition:
gpu_immediate_private.hh:19
blender::gpu::Immediate::strict_vertex_len
bool strict_vertex_len
Definition:
gpu_immediate_private.hh:37
glew-mx.h
gpu_immediate_private.hh
blender::gpu
Definition:
gpu_backend.hh:15
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1