Skylicht Engine
Loading...
Searching...
No Matches
IGPUCompute.h
1// Copyright (C) 2020 Pham Hong Duc
2// This file is part of the "Skylicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4// Add irrlicht compute shader feature
5
6#ifndef __I_GPU_COMPUTE_H_INCLUDED__
7#define __I_GPU_COMPUTE_H_INCLUDED__
8
9#include "IrrCompileConfig.h"
10
11#include "IReferenceCounted.h"
12#include "EDriverTypes.h"
13
14namespace irr
15{
16 namespace video
17 {
18 class IRWBuffer;
19 class ITexture;
20
21 class IGPUCompute : public virtual IReferenceCounted
22 {
23 public:
24 IGPUCompute() :
25 DriverType(EDT_NULL)
26 {
27
28 }
29
30 E_DRIVER_TYPE getDriverType() const { return DriverType; };
31
32 virtual bool setVariable(s32 id, const f32* floats, int count) = 0;
33
34 virtual s32 getVariableID(const c8* name) = 0;
35
36 virtual void setTexture(int slot, ITexture *texture) = 0;
37
38 virtual void setBuffer(int slot, IRWBuffer *buffer) = 0;
39
40 virtual void dispatch(int threadGroupX, int threadGroupY, int threadGroupZ) = 0;
41
42 protected:
43
44 E_DRIVER_TYPE DriverType;
45 };
46 }
47}
48
49#endif
IReferenceCounted()
Constructor.
Definition IReferenceCounted.h:50
Definition IRWBuffer.h:18
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done ...
Definition EDriverFeatures.h:11
E_DRIVER_TYPE
An enum for all types of drivers the Irrlicht Engine supports.
Definition EDriverTypes.h:15
@ EDT_NULL
Null driver, useful for applications to run the engine without visualisation.
Definition EDriverTypes.h:19
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
float f32
32 bit floating point variable.
Definition irrTypes.h:104
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66