ソースを参照

Pica: Name LightSrc.config register

Jannik Vogel 10 年 前
コミット
30a01584f2
2 ファイル変更15 行追加17 行削除
  1. 13 15
      src/video_core/pica.h
  2. 2 2
      src/video_core/renderer_opengl/gl_rasterizer.h

+ 13 - 15
src/video_core/pica.h

@@ -787,23 +787,21 @@ struct Regs {
             LightColor diffuse;     // material.diffuse * light.diffuse
             LightColor ambient;     // material.ambient * light.ambient
 
-            struct {
-                // Encoded as 16-bit floating point
-                union {
-                    BitField< 0, 16, u32> x;
-                    BitField<16, 16, u32> y;
-                };
-                union {
-                    BitField< 0, 16, u32> z;
-                };
+            // Encoded as 16-bit floating point
+            union {
+                BitField< 0, 16, u32> x;
+                BitField<16, 16, u32> y;
+            };
+            union {
+                BitField< 0, 16, u32> z;
+            };
 
-                INSERT_PADDING_WORDS(0x3);
+            INSERT_PADDING_WORDS(0x3);
 
-                union {
-                    BitField<0, 1, u32> directional;
-                    BitField<1, 1, u32> two_sided_diffuse; // When disabled, clamp dot-product to 0
-                };
-            };
+            union {
+                BitField<0, 1, u32> directional;
+                BitField<1, 1, u32> two_sided_diffuse; // When disabled, clamp dot-product to 0
+            } config;
 
             BitField<0, 20, u32> dist_atten_bias;
             BitField<0, 20, u32> dist_atten_scale;

+ 2 - 2
src/video_core/renderer_opengl/gl_rasterizer.h

@@ -89,8 +89,8 @@ union PicaShaderConfig {
             unsigned num = regs.lighting.light_enable.GetNum(light_index);
             const auto& light = regs.lighting.light[num];
             state.lighting.light[light_index].num = num;
-            state.lighting.light[light_index].directional = light.directional != 0;
-            state.lighting.light[light_index].two_sided_diffuse = light.two_sided_diffuse != 0;
+            state.lighting.light[light_index].directional = light.config.directional != 0;
+            state.lighting.light[light_index].two_sided_diffuse = light.config.two_sided_diffuse != 0;
             state.lighting.light[light_index].dist_atten_enable = !regs.lighting.IsDistAttenDisabled(num);
         }