Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
apexrenderer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2024-2025 Global Graphics Software 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 IRCObject
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
95 virtual void render(const IDOMNodePtr &node,
96 CRenderSpec *renderSpec) = 0;
97
98 class ITexture : public IRCObject
99 {
100 public:
101 virtual ~ITexture() {}
102 };
105
107 {
108 public:
109 virtual ~IFragmentShader() {}
110 };
112
113
150 virtual ITexturePtr uploadImage(void *data,
151 uint32 size,
152 uint8 numComponents,
153 uint32 width,
154 uint32 height,
155 uint32 depth,
156 bool filtered = false) = 0;
157
170 virtual IFragmentShaderPtr createFragmentShader(void *data,
171 uint32 size) = 0;
172 };
173
174}
175
176#endif
Definition edlvector.h:30
Base class Interface for all Reference Counted objects.
Definition ircobject.h:35
A base class that describes base rendering properties common to all rendering operations....
Definition renderspec.h:82
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:107
virtual ~IFragmentShader()
Definition apexrenderer.h:109
Definition apexrenderer.h:99
virtual ~ITexture()
Definition apexrenderer.h:101
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:104
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 void render(const IDOMNodePtr &node, CRenderSpec *renderSpec)=0
Render a node, targeting the given render specification. Any gray, RGB (except sRGB),...
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
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:144
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