summaryrefslogtreecommitdiff
path: root/Runtime/GfxDevice/opengles30/DebugGLES30.h
blob: 0468cdf5852e5a60a1c8d8494462793365ff1f61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#ifndef DEBUGGLES30_H
#define DEBUGGLES30_H

#include "Runtime/Utilities/LogAssert.h"
#include "Runtime/GfxDevice/GfxDeviceTypes.h"
#include "Runtime/Math/Matrix4x4.h"


void DumpVertexArrayStateGLES30();

#if !UNITY_RELEASE
	#define DBG_LOG_GLES30_ACTIVE 0
	#define DBG_TEXTURE_VERBOSE_GLES30_ACTIVE 0
	#define DBG_SHADER_VERBOSE_GLES30_ACTIVE 0
	#define DBG_GLSL_BINDINGS_GLES30_ACTIVE 0
#else
	#define DBG_LOG_GLES30_ACTIVE UNITY_WEBGL
	#define DBG_TEXTURE_VERBOSE_GLES30_ACTIVE UNITY_WEBGL
	#define DBG_SHADER_VERBOSE_GLES30_ACTIVE 0
	#define DBG_GLSL_BINDINGS_GLES30_ACTIVE 0
#endif

#if DBG_LOG_GLES30_ACTIVE
	#define DBG_LOG_GLES30(...) {printf_console(__VA_ARGS__);printf_console("\n");}

	inline std::string GetMatrixString(const Matrix4x4f& mtx)
	{
		return Format("%.2f, %.2f, %.2f, %2f,\n"
				"%.2f, %.2f, %.2f, %2f,\n"
				"%.2f, %.2f, %.2f, %2f,\n"
				"%.2f, %.2f, %.2f, %2f",
				mtx[0],	mtx[1],	mtx[2],	mtx[3],
				mtx[4],	mtx[5],	mtx[6],	mtx[7],
				mtx[8],	mtx[9],	mtx[10],mtx[11],
				mtx[12],mtx[13],mtx[14],mtx[15]);
	}

	inline const char*	GetBoolString(bool type)
	{
		return type?"True":"False";
	}

	inline const char * GetBlendModeString(BlendMode type)
	{
		switch(type)
		{
		case kBlendZero:return "kBlendZero";
		case kBlendOne:return "kBlendOne";
		case kBlendDstColor:return "kBlendDstColor";
		case kBlendSrcColor:return "kBlendSrcColor";
		case kBlendOneMinusDstColor:return "kBlendOneMinusDstColor";
		case kBlendSrcAlpha:return "kBlendSrcAlpha";
		case kBlendOneMinusSrcColor:return "kBlendOneMinusSrcColor";
		case kBlendDstAlpha:return "kBlendDstAlpha";
		case kBlendOneMinusDstAlpha:return "kBlendOneMinusDstAlpha";
		case kBlendSrcAlphaSaturate:return "kBlendSrcAlphaSaturate";
		case kBlendOneMinusSrcAlpha:return "kBlendOneMinusSrcAlpha";
		default:return "GetBlendModeString<Undefined>";
		}
	}
	inline const char * GetCullModeString(CullMode type)
	{
		switch(type)
		{
		case kCullUnknown:return "kCullUnknown";
		case kCullOff:return "kCullOff:return";
		case kCullFront:return "kCullFront";
		case kCullBack:return "kCullBack";;
		default:return "GetCullMode<undefined>";
		}
	}

	inline const char * GetCompareFunctionString(CompareFunction type)
	{
		switch(type)
		{
		case kFuncUnknown:return "kFuncUnknown";
		case kFuncDisabled:return "kFuncDisabled";
		case kFuncNever:return "kFuncNever";
		case kFuncLess:return "kFuncLess";
		case kFuncEqual:return "kFuncEqual";
		case kFuncLEqual:return "kFuncLEqual";
		case kFuncGreater:return "kFuncGreater";
		case kFuncNotEqual:return "kFuncNotEqual";
		case kFuncGEqual:return "kFuncGEqual";
		case kFuncAlways:return "kFuncAlways";
		default:return "GetCompareFunctionString<Undefined>";
		}
	}

	inline const char * GetShaderTypeString(ShaderType type)
	{
		switch(type)
		{
		case kShaderNone:return "kShaderNone";
		case kShaderVertex:return "kShaderVertex";
		case kShaderFragment:return "kShaderFragment";
		default:return "GetShaderTypeString<undefined>";
		}
	}

	inline const char * GetShaderImplTypeString(ShaderImplType type)
	{
		switch(type)
		{
		case kShaderImplUndefined: return "kShaderImplUndefined";
		case kShaderImplVertex: return "kShaderImplVertex";
		case kShaderImplFragment: return "kShaderImplFragment";
		case kShaderImplBoth: return "kShaderImplBoth";
		default:return "GetShaderImplTypeString<Undefined>";
		}
	}

#else
	#define DBG_LOG_GLES30(...)
#endif

#if DBG_TEXTURE_VERBOSE_GLES30_ACTIVE
#define DBG_TEXTURE_VERBOSE_GLES30(...) {printf_console(__VA_ARGS__);printf_console("\n");}
#else
#define DBG_TEXTURE_VERBOSE_GLES30(...)
#endif

#if DBG_SHADER_VERBOSE_GLES30_ACTIVE
	#define DBG_SHADER_VERBOSE_GLES30(...) {printf_console(__VA_ARGS__);printf_console("\n");}
	#define DBG_SHADER_VERBOSE_GLES30_DUMP_SHADER(prefix, text) { printf_console("%s\n", prefix);DebugTextLineByLine(text);printf_console("\n---\n");}
#else
	#define DBG_SHADER_VERBOSE_GLES30(...)
	#define DBG_SHADER_VERBOSE_GLES30_DUMP_SHADER(prefix, text)
#endif

#if DBG_GLSL_BINDINGS_GLES30_ACTIVE
	#define DBG_GLSL_BINDINGS_GLES30(...) {printf_console(__VA_ARGS__);printf_console("\n");}
#else
	#define DBG_GLSL_BINDINGS_GLES30(...)
#endif


#endif