Logo
Shader.h
1#pragma once
2
3#include "Types.h"
4#include "gfx/Shader/ShaderProgram.h"
5
6namespace XXSharpKmyGfx{
7
8 private ref class Shader{
9
10 public:
11
12 enum class DrawPass
13 {
14 Opaque,
15 Decal,
16 Unlit,
17 Skybox,
19 Other,
20 Count,
21 };
22
23 kmyGfx::Shader* obj;
24
25 Shader()
26 {
27 obj = NULL;
28 }
29
30 Shader(System::String^ path);
31
32 Shader(kmyGfx::Shader* ptr);
33
34 DrawPass getDrawPass();
35
36 void Release()
37 {
38 //if (obj)obj->removeRef();
39 }
40
41 void Delete()
42 {
43 if (obj) {
44 delete obj;
45 obj = nullptr;
46 }
47 }
48
49 bool isSrgbTexture(String^ slotname);
50 void beginUse();
51
52 Guid getGuid();
53 u32 GetLocalUniformBufferSize();
54
55 static Shader ^findByName(String^ name);
56
57 static Shader ^load(System::String ^path);
58 static void reloadModified();
59
60 };
61
62
63
64
65}