- Add separate ImmutablePalette and MutablePalette classes since the distinction is extremely important to HardwarePalette. - Keep a cache of palettes in HardwarePalette to avoid reallocation them every time ApplyModifiers is called. - Palettes that are not allowed to be modified are copied to the buffer once when added, rather than every time ApplyModifiers is called. - The AdjustPalette method now takes a read-only dictionary to prevent the dictionary being messed with. - Added a constant for the palette size to remove its usage as a magic number in several areas. - The ColorPreviewManagerWidget is annoying in that it needs to actually permanently update a palette after it has been added. To allow this, HardwarePalette now allows a palette to be replaced after initialization. The WorldRenderer therefore now also updates the PaletteReference it created earlier with the new palette to prevent stale data being used elsewhere.
9 lines
213 B
GLSL
9 lines
213 B
GLSL
uniform sampler2D DiffuseTexture, Palette;
|
|
|
|
void main()
|
|
{
|
|
vec4 x = texture2D(DiffuseTexture, gl_TexCoord[0].st);
|
|
vec2 p = vec2(gl_TexCoord[0].p, dot(x, gl_TexCoord[1]));
|
|
gl_FragColor = texture2D(Palette, p);
|
|
}
|