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