mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	renderer_opengl: Use GLvec3/GLvec4 aliases for commonly used types.
This commit is contained in:
		
							parent
							
								
									8e9318f20a
								
							
						
					
					
						commit
						aaa7beeda8
					
				
					 4 changed files with 18 additions and 14 deletions
				
			
		|  | @ -920,7 +920,7 @@ void RasterizerOpenGL::SyncGlobalAmbient() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void RasterizerOpenGL::SyncLightingLUT(unsigned lut_index) { | void RasterizerOpenGL::SyncLightingLUT(unsigned lut_index) { | ||||||
|     std::array<std::array<GLfloat, 4>, 256> new_data; |     std::array<GLvec4, 256> new_data; | ||||||
| 
 | 
 | ||||||
|     for (unsigned offset = 0; offset < new_data.size(); ++offset) { |     for (unsigned offset = 0; offset < new_data.size(); ++offset) { | ||||||
|         new_data[offset][0] = Pica::g_state.lighting.luts[(lut_index * 4) + 0][offset].ToFloat(); |         new_data[offset][0] = Pica::g_state.lighting.luts[(lut_index * 4) + 0][offset].ToFloat(); | ||||||
|  | @ -969,7 +969,7 @@ void RasterizerOpenGL::SyncLightAmbient(int light_index) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void RasterizerOpenGL::SyncLightPosition(int light_index) { | void RasterizerOpenGL::SyncLightPosition(int light_index) { | ||||||
|     std::array<GLfloat, 3> position = { |     GLvec3 position = { | ||||||
|         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].x).ToFloat32(), |         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].x).ToFloat32(), | ||||||
|         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].y).ToFloat32(), |         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].y).ToFloat32(), | ||||||
|         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].z).ToFloat32() }; |         Pica::float16::FromRaw(Pica::g_state.regs.lighting.light[light_index].z).ToFloat32() }; | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ | ||||||
| #include "video_core/rasterizer_interface.h" | #include "video_core/rasterizer_interface.h" | ||||||
| #include "video_core/renderer_opengl/gl_rasterizer_cache.h" | #include "video_core/renderer_opengl/gl_rasterizer_cache.h" | ||||||
| #include "video_core/renderer_opengl/gl_state.h" | #include "video_core/renderer_opengl/gl_state.h" | ||||||
|  | #include "video_core/renderer_opengl/pica_to_gl.h" | ||||||
| #include "video_core/shader/shader_interpreter.h" | #include "video_core/shader/shader_interpreter.h" | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  | @ -288,27 +289,27 @@ private: | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     struct LightSrc { |     struct LightSrc { | ||||||
|         std::array<GLfloat, 3> specular_0; |         GLvec3 specular_0; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|         std::array<GLfloat, 3> specular_1; |         GLvec3 specular_1; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|         std::array<GLfloat, 3> diffuse; |         GLvec3 diffuse; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|         std::array<GLfloat, 3> ambient; |         GLvec3 ambient; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|         std::array<GLfloat, 3> position; |         GLvec3 position; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     /// Uniform structure for the Uniform Buffer Object, all members must be 16-byte aligned
 |     /// Uniform structure for the Uniform Buffer Object, all members must be 16-byte aligned
 | ||||||
|     struct UniformData { |     struct UniformData { | ||||||
|         // A vec4 color for each of the six tev stages
 |         // A vec4 color for each of the six tev stages
 | ||||||
|         std::array<GLfloat, 4> const_color[6]; |         GLvec4 const_color[6]; | ||||||
|         std::array<GLfloat, 4> tev_combiner_buffer_color; |         GLvec4 tev_combiner_buffer_color; | ||||||
|         GLint alphatest_ref; |         GLint alphatest_ref; | ||||||
|         GLfloat depth_offset; |         GLfloat depth_offset; | ||||||
|         INSERT_PADDING_WORDS(2); |         INSERT_PADDING_WORDS(2); | ||||||
|         std::array<GLfloat, 3> lighting_global_ambient; |         GLvec3 lighting_global_ambient; | ||||||
|         INSERT_PADDING_WORDS(1); |         INSERT_PADDING_WORDS(1); | ||||||
|         LightSrc light_src[8]; |         LightSrc light_src[8]; | ||||||
|     }; |     }; | ||||||
|  | @ -434,5 +435,5 @@ private: | ||||||
|     OGLFramebuffer framebuffer; |     OGLFramebuffer framebuffer; | ||||||
| 
 | 
 | ||||||
|     std::array<OGLTexture, 6> lighting_lut; |     std::array<OGLTexture, 6> lighting_lut; | ||||||
|     std::array<std::array<std::array<GLfloat, 4>, 256>, 6> lighting_lut_data; |     std::array<std::array<GLvec4, 256>, 6> lighting_lut_data; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -10,6 +10,9 @@ | ||||||
| 
 | 
 | ||||||
| #include "video_core/pica.h" | #include "video_core/pica.h" | ||||||
| 
 | 
 | ||||||
|  | using GLvec3 = std::array<GLfloat, 3>; | ||||||
|  | using GLvec4 = std::array<GLfloat, 4>; | ||||||
|  | 
 | ||||||
| namespace PicaToGL { | namespace PicaToGL { | ||||||
| 
 | 
 | ||||||
| inline GLenum TextureFilterMode(Pica::Regs::TextureConfig::TextureFilter mode) { | inline GLenum TextureFilterMode(Pica::Regs::TextureConfig::TextureFilter mode) { | ||||||
|  | @ -175,7 +178,7 @@ inline GLenum StencilOp(Pica::Regs::StencilAction action) { | ||||||
|     return stencil_op_table[(unsigned)action]; |     return stencil_op_table[(unsigned)action]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| inline std::array<GLfloat, 4> ColorRGBA8(const u32 color) { | inline GLvec4 ColorRGBA8(const u32 color) { | ||||||
|     return { { (color >>  0 & 0xFF) / 255.0f, |     return { { (color >>  0 & 0xFF) / 255.0f, | ||||||
|                (color >>  8 & 0xFF) / 255.0f, |                (color >>  8 & 0xFF) / 255.0f, | ||||||
|                (color >> 16 & 0xFF) / 255.0f, |                (color >> 16 & 0xFF) / 255.0f, | ||||||
|  |  | ||||||
|  | @ -81,8 +81,8 @@ struct ScreenRectVertex { | ||||||
|  * The projection part of the matrix is trivial, hence these operations are represented |  * The projection part of the matrix is trivial, hence these operations are represented | ||||||
|  * by a 3x2 matrix. |  * by a 3x2 matrix. | ||||||
|  */ |  */ | ||||||
| static std::array<GLfloat, 3*2> MakeOrthographicMatrix(const float width, const float height) { | static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, const float height) { | ||||||
|     std::array<GLfloat, 3*2> matrix; |     std::array<GLfloat, 3 * 2> matrix; | ||||||
| 
 | 
 | ||||||
|     matrix[0] = 2.f / width; matrix[2] = 0.f;           matrix[4] = -1.f; |     matrix[0] = 2.f / width; matrix[2] = 0.f;           matrix[4] = -1.f; | ||||||
|     matrix[1] = 0.f;         matrix[3] = -2.f / height; matrix[5] = 1.f; |     matrix[1] = 0.f;         matrix[3] = -2.f / height; matrix[5] = 1.f; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue