Mako 9.1.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
28 class IApexRenderer;
30
31 class IApexRenderer : public IRenderer
32 {
33 public:
44 static JAWSMAKO_API IApexRendererPtr create(const IJawsMakoPtr &jawsMako,
45 int32 deviceIndex = -1);
46
51 {
52 public:
58
59 bool operator== (const CGpuDeviceInfo &other) const
60 {
61 return (other.deviceName == deviceName)
62 && (other.vendorId == vendorId)
63 && (other.discreteDevice == discreteDevice)
65 }
66
67 bool operator!= (const CGpuDeviceInfo &other) const
68 {
69 return ! (*this == other);
70 }
71
72 };
74
80
86
87 class ITexture : public IRCObject
88 {
89 public:
90 virtual ~ITexture() {}
91 };
94
96 {
97 public:
98 virtual ~IFragmentShader() {}
99 };
101
102
103#ifdef SWIG
104#if SWIGCSHARP
105 %apply char *ARRAY_INPUT_SIZEINDEX_1 { const void *data };
106#endif
107#if SWIGJAVA
108 %apply (char *ARRAY_INPUT, size_t LENGTH) { (const void *data, uint32 size) };
109#endif
110#if SWIGPYTHON
111 %apply char INPUT[] { const void *data};
112#endif
113#endif
150 virtual ITexturePtr uploadImage(const void *data,
151 uint32 size,
152 uint8 numComponents,
153 uint32 width,
154 uint32 height,
155 uint32 depth,
156 bool filtered = false) = 0;
157#ifdef SWIG
158 %clear const void *data;
159 %clear (const void *data, uint32 size);
160#endif
161
162#ifdef SWIG
163#if SWIGCSHARP
164 %apply char *ARRAY_INPUT_SIZEINDEX_1 { const void *data };
165#endif
166#if SWIGJAVA
167 %apply (char *ARRAY_INPUT, size_t LENGTH) { (const void *data, uint32 size) };
168#endif
169#if SWIGPYTHON
170 %apply char INPUT[] { const void *data};
171#endif
172#endif
185 virtual IFragmentShaderPtr createFragmentShader(const void *data,
186 uint32 size) = 0;
187#ifdef SWIG
188 %clear const void *data;
189 %clear (const void *data, uint32 size);
190#endif
191 };
192
193}
194
195#endif
Definition edlvector.h:31
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:51
bool operator==(const CGpuDeviceInfo &other) const
Definition apexrenderer.h:59
uint32 index
The index of the GPU in the available system GPU list.
Definition apexrenderer.h:53
U8String deviceName
The name of the device.
Definition apexrenderer.h:54
bool discreteDevice
True if the device is a discrete GPU, false otherwise.
Definition apexrenderer.h:56
uint32 vendorId
The PCI vendor ID of the device manufacturer.
Definition apexrenderer.h:55
uint64 deviceLocalMemorySize
The size of device local memory.
Definition apexrenderer.h:57
bool operator!=(const CGpuDeviceInfo &other) const
Definition apexrenderer.h:67
Definition apexrenderer.h:96
virtual ~IFragmentShader()
Definition apexrenderer.h:98
Definition apexrenderer.h:88
virtual ~ITexture()
Definition apexrenderer.h:90
A renderer that uses the GPU-accelerated Apex RIP to create images from arbitrary DOM....
Definition apexrenderer.h:32
CEDLVector< ITexturePtr > CTextureVect
Definition apexrenderer.h:93
static JAWSMAKO_API IApexRendererPtr create(const IJawsMakoPtr &jawsMako, int32 deviceIndex=-1)
Create an Apex renderer instance.
virtual CGpuDeviceInfo getGpuInfo()=0
Fetch the GPU information of the GPU being used by this Apex instance.
virtual ITexturePtr uploadImage(const 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...
DECL_SMART_PTR(IFragmentShader)
static JAWSMAKO_API CGpuDeviceInfoVect enumerateGpus()
Enumerate all the available GPU devices.
virtual IFragmentShaderPtr createFragmentShader(const 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:73
A generic renderer interface.
Definition renderspec.h:1053
unsigned int uint32
Definition edltypes.h:36
unsigned long long uint64
Definition edltypes.h:37
signed int int32
Definition edltypes.h:31
unsigned char uint8
Definition edltypes.h:34
EDLSysString U8String
A UTF-8 String.
Definition types.h:150
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