* opengl_context -> system_gpu_context. This is the operating system OpenGL, Metal or Vulkan context provided by GHOST. * gpu_context -> blender_gpu_context. This is the GPUContext provided by the Blender GPU module, which wraps the GHOST context and adds some state. * Various functions create/destroy/enable/disable both contexts, these have just gpu_context in the name now. Pull Request: https://projects.blender.org/blender/blender/pulls/108723
57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
/* SPDX-FileCopyrightText: 2023 Blender Foundation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0 */
|
|
|
|
#include "testing/testing.h"
|
|
|
|
#include "CLG_log.h"
|
|
|
|
#include "GPU_context.h"
|
|
#include "GPU_debug.h"
|
|
#include "GPU_init_exit.h"
|
|
#include "gpu_testing.hh"
|
|
|
|
#include "GHOST_C-api.h"
|
|
|
|
#include "BKE_global.h"
|
|
|
|
namespace blender::gpu {
|
|
|
|
void GPUTest::SetUp()
|
|
{
|
|
prev_g_debug_ = G.debug;
|
|
G.debug |= G_DEBUG_GPU | G_DEBUG_GPU_RENDERDOC;
|
|
|
|
CLG_init();
|
|
GPU_backend_type_selection_set(gpu_backend_type);
|
|
GHOST_GPUSettings gpuSettings = {};
|
|
gpuSettings.context_type = draw_context_type;
|
|
gpuSettings.flags = GHOST_gpuDebugContext;
|
|
ghost_system = GHOST_CreateSystem();
|
|
ghost_context = GHOST_CreateGPUContext(ghost_system, gpuSettings);
|
|
GHOST_ActivateGPUContext(ghost_context);
|
|
context = GPU_context_create(nullptr, ghost_context);
|
|
GPU_init();
|
|
|
|
BLI_init_srgb_conversion();
|
|
|
|
GPU_context_begin_frame(context);
|
|
GPU_debug_capture_begin();
|
|
}
|
|
|
|
void GPUTest::TearDown()
|
|
{
|
|
GPU_debug_capture_end();
|
|
GPU_context_end_frame(context);
|
|
|
|
GPU_exit();
|
|
GPU_context_discard(context);
|
|
GHOST_DisposeGPUContext(ghost_system, ghost_context);
|
|
GHOST_DisposeSystem(ghost_system);
|
|
CLG_exit();
|
|
|
|
G.debug = prev_g_debug_;
|
|
}
|
|
|
|
} // namespace blender::gpu
|