Banuba SDK
Loading...
Searching...
No Matches
metal_render_target.hpp
1#pragma once
2
3#include <bnb/player_api/interfaces/render_target.hpp>
4
5#ifdef __OBJC__
6 #import <Foundation/Foundation.h>
7 #import <MetalKit/MetalKit.h>
8#endif
9
10namespace bnb::player_api
11{
12
13 class BNB_EXPORT metal_render_target
15 {
16 public:
17 static std::shared_ptr<metal_render_target> create();
18
19#ifdef __OBJC__
20 virtual CIImage* present_to_image() = 0;
21 virtual void present_to_layer(CAMetalLayer* layer, const float* mat4, CGRect view_port) = 0;
22 virtual void present_to_texture(id<MTLTexture> texture, const float* mat4, CGRect view_port) = 0;
23 virtual id<MTLDevice> get_device() = 0;
24 virtual id<MTLCommandQueue> get_command_queue() = 0;
25#endif
26 }; // class metal_render_target
27
28} // namespace bnb::player_api
Responsible for preparation for drawing frames to 'outputs'.