Blender V5.0
mtl_immediate.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10
11#pragma once
12
13#include "MEM_guardedalloc.h"
14
16
17#include "mtl_context.hh"
18
19#include <Cocoa/Cocoa.h>
20#include <Metal/Metal.h>
21#include <QuartzCore/QuartzCore.h>
22
23namespace blender::gpu {
24
25class MTLImmediate : public Immediate {
26 private:
27 MTLContext *context_ = nullptr;
28 MTLTemporaryBuffer current_allocation_;
29 MTLPrimitiveTopologyClass metal_primitive_mode_;
30 MTLPrimitiveType metal_primitive_type_;
31 bool has_begun_ = false;
32
33 public:
35 ~MTLImmediate() override = default;
36
37 uchar *begin() override;
38 void end() override;
40 {
41 return has_begun_;
42 }
43};
44
45} // namespace blender::gpu
unsigned char uchar
Read Guarded memory(de)allocation.
uchar * begin() override
MTLImmediate(MTLContext *ctx)
~MTLImmediate() override=default
MTLBufferRange MTLTemporaryBuffer