Mako 8.4.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
131 virtual ITexturePtr uploadImage(void *data,
132 uint32 size,
133 uint8 numComponents,
134 uint32 width,
135 uint32 height,
136 uint32 depth,
137 bool filtered = false) = 0;
138
151 virtual IFragmentShaderPtr createFragmentShader(void *data,
152 uint32 size) = 0;
153 };
154
155}
156
157#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:1002
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