Mako 9.0.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
apexrenderer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2024-2026 Hybrid Software Helix Ltd. All rights reserved.
3 */
4
5#ifndef JAWSMAKO_APEX_RENDERER_H
6#define JAWSMAKO_APEX_RENDERER_H
7
12
13#include <jawsmako/jawsmako.h>
14#include <jawsmako/types.h>
15#include <jawsmako/renderspec.h>
16
17namespace JawsMako
18{
19 using namespace EDL;
20
27 class IApexRenderer;
29
30 class IApexRenderer : public IRenderer
31 {
32 public:
43 static JAWSMAKO_API IApexRendererPtr create(const IJawsMakoPtr &jawsMako,
44 int32 deviceIndex = -1);
45
50 {
51 public:
56
57 bool operator== (const CGpuDeviceInfo &other) const
58 {
59 return (other.deviceName == deviceName)
60 && (other.vendorId == vendorId)
61 && (other.discreteDevice == discreteDevice)
63 }
64
65 bool operator!= (const CGpuDeviceInfo &other) const
66 {
67 return ! (*this == other);
68 }
69
70 };
72
78
79 class ITexture : public IRCObject
80 {
81 public:
82 virtual ~ITexture() {}
83 };
86
88 {
89 public:
90 virtual ~IFragmentShader() {}
91 };
93
94
95#ifdef SWIG
96#if SWIGCSHARP
97 %apply char *ARRAY_INPUT_SIZEINDEX_1 { void *data };
98#endif
99#if SWIGJAVA
100 %apply (char *ARRAY_INPUT, size_t LENGTH) { (void *data, uint32 size) };
101#endif
102#if SWIGPYTHON
103 %apply char INPUT[] { void *data};
104#endif
105#endif
142 virtual ITexturePtr uploadImage(void *data,
143 uint32 size,
144 uint8 numComponents,
145 uint32 width,
146 uint32 height,
147 uint32 depth,
148 bool filtered = false) = 0;
149#ifdef SWIG
150 %clear void *data;
151 %clear (void *data, uint32 size);
152#endif
153
154#ifdef SWIG
155#if SWIGCSHARP
156 %apply char *ARRAY_INPUT_SIZEINDEX_1 { void *data };
157#endif
158#if SWIGJAVA
159 %apply (char *ARRAY_INPUT, size_t LENGTH) { (void *data, uint32 size) };
160#endif
161#if SWIGPYTHON
162 %apply char INPUT[] { void *data};
163#endif
164#endif
177 virtual IFragmentShaderPtr createFragmentShader(void *data,
178 uint32 size) = 0;
179#ifdef SWIG
180 %clear void *data;
181 %clear (void *data, uint32 size);
182#endif
183 };
184
185}
186
187#endif
Definition edlvector.h:30
Base class Interface for all Reference Counted objects.
Definition ircobject.h:35
A class representing a GPU device discovered on the current host.
Definition apexrenderer.h:50
bool operator==(const CGpuDeviceInfo &other) const
Definition apexrenderer.h:57
U8String deviceName
The name of the device.
Definition apexrenderer.h:52
bool discreteDevice
True if the device is a discrete GPU, false otherwise.
Definition apexrenderer.h:54
uint32 vendorId
The PCI vendor ID of the device manufacturer.
Definition apexrenderer.h:53
uint64 deviceLocalMemorySize
The size of device local memory.
Definition apexrenderer.h:55
bool operator!=(const CGpuDeviceInfo &other) const
Definition apexrenderer.h:65
Definition apexrenderer.h:88
virtual ~IFragmentShader()
Definition apexrenderer.h:90
Definition apexrenderer.h:80
virtual ~ITexture()
Definition apexrenderer.h:82
A renderer that uses the GPU-accelerated Apex RIP to create images from arbitrary DOM.
Definition apexrenderer.h:31
CEDLVector< ITexturePtr > CTextureVect
Definition apexrenderer.h:85
static JAWSMAKO_API IApexRendererPtr create(const IJawsMakoPtr &jawsMako, int32 deviceIndex=-1)
Create an Apex renderer instance.
DECL_SMART_PTR(IFragmentShader)
static JAWSMAKO_API CGpuDeviceInfoVect enumerateGpus()
Enumerate all the available GPU devices.
virtual ITexturePtr uploadImage(void *data, uint32 size, uint8 numComponents, uint32 width, uint32 height, uint32 depth, bool filtered=false)=0
Upload an image to the GPU preparing for its use as a texture by a custom post processing step (see a...
virtual IFragmentShaderPtr createFragmentShader(void *data, uint32 size)=0
Create a fragment shader ready to run on the GPU. These fragment shaders must be presented in SPIR-V ...
CEDLVector< CGpuDeviceInfo > CGpuDeviceInfoVect
Definition apexrenderer.h:71
A generic renderer interface.
Definition renderspec.h:1053
unsigned int uint32
Definition edltypes.h:34
unsigned long long uint64
Definition edltypes.h:35
signed int int32
Definition edltypes.h:29
unsigned char uint8
Definition edltypes.h:32
EDLSysString U8String
A UTF-8 String.
Definition types.h:146
Definition apexcustompostprocess.h:17
Render specification classes and post-processes.
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211
#define JAWSMAKO_API
Definition types.h:29