Banuba SDK
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 
10 namespace 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
bnb::player_api::metal_render_target
Definition: metal_render_target.hpp:13
bnb::player_api::interfaces::render_target
Responsible for preparation for drawing frames to 'outputs'.
Definition: render_target.hpp:26