You've already forked godot
							
							
				mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-03 11:50:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#include "drivers/gles3/shader_gles3.h"
 | 
						|
 | 
						|
class VertexFragmentShaderGLES3 : public ShaderGLES3 {
 | 
						|
public:
 | 
						|
	enum ShaderVariant {
 | 
						|
		MODE_NINEPATCH,
 | 
						|
	};
 | 
						|
 | 
						|
	enum Specializations {
 | 
						|
		DISABLE_LIGHTING = 1,
 | 
						|
	};
 | 
						|
 | 
						|
	_FORCE_INLINE_ bool version_bind_shader(RID p_version, ShaderVariant p_variant, uint64_t p_specialization = 0) {
 | 
						|
		return _version_bind_shader(p_version, p_variant, p_specialization);
 | 
						|
	}
 | 
						|
 | 
						|
protected:
 | 
						|
	virtual void _init() override {
 | 
						|
		static const char **_uniform_strings = nullptr;
 | 
						|
		static const char *_variant_defines[] = {
 | 
						|
			"#define USE_NINEPATCH",
 | 
						|
		};
 | 
						|
		static TexUnitPair *_texunit_pairs = nullptr;
 | 
						|
		static UBOPair *_ubo_pairs = nullptr;
 | 
						|
		static Specialization _spec_pairs[] = {
 | 
						|
			{ "DISABLE_LIGHTING", false },
 | 
						|
		};
 | 
						|
		static const Feedback *_feedbacks = nullptr;
 | 
						|
		static const char _vertex_code[] = {
 | 
						|
R"<!>(
 | 
						|
precision highp float;
 | 
						|
precision highp int;
 | 
						|
 | 
						|
layout(location = 0) in highp vec3 vertex;
 | 
						|
 | 
						|
out highp vec4 position_interp;
 | 
						|
 | 
						|
void main() {
 | 
						|
	position_interp = vec4(vertex.x,1,0,1);
 | 
						|
}
 | 
						|
 | 
						|
)<!>"
 | 
						|
		};
 | 
						|
 | 
						|
		static const char _fragment_code[] = {
 | 
						|
R"<!>(
 | 
						|
precision highp float;
 | 
						|
precision highp int;
 | 
						|
 | 
						|
in highp vec4 position_interp;
 | 
						|
 | 
						|
void main() {
 | 
						|
	highp float depth = ((position_interp.z / position_interp.w) + 1.0);
 | 
						|
	frag_color = vec4(depth);
 | 
						|
}
 | 
						|
)<!>"
 | 
						|
		};
 | 
						|
 | 
						|
		_setup(_vertex_code, _fragment_code, "VertexFragmentShaderGLES3",
 | 
						|
				0, _uniform_strings, 0, _ubo_pairs,
 | 
						|
				0, _feedbacks, 0, _texunit_pairs,
 | 
						|
				1, _spec_pairs, 1, _variant_defines);
 | 
						|
	}
 | 
						|
};
 |