[gnome-games/glchess-vala] Use existing piece colors
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/glchess-vala] Use existing piece colors
- Date: Tue, 11 Jan 2011 17:58:41 +0000 (UTC)
commit 6cb6709f113fcb88a081a439e9adac9a5ae7e292
Author: Robert Ancell <robert ancell canonical com>
Date: Mon Jan 10 07:32:41 2011 +1100
Use existing piece colors
glchess/src/chess-view-3d.vala | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
---
diff --git a/glchess/src/chess-view-3d.vala b/glchess/src/chess-view-3d.vala
index b13c645..1d331b3 100644
--- a/glchess/src/chess-view-3d.vala
+++ b/glchess/src/chess-view-3d.vala
@@ -26,6 +26,11 @@ private class ChessView3D : ChessView
private GLfloat BOARD_INNER_WIDTH;
private GLfloat BOARD_OUTER_WIDTH;
private GLfloat OFFSET;
+
+ private GLfloat white_piece_color[4];
+ private GLfloat white_piece_specular[4];
+ private GLfloat black_piece_color[4];
+ private GLfloat black_piece_specular[4];
private GLuint _board_texture = 0;
private GLuint board_texture
@@ -59,6 +64,11 @@ private class ChessView3D : ChessView
realize.connect (realize_cb);
unrealize.connect (unrealize_cb);
+ white_piece_color = { 0.95f * 0.7f, 0.81f * 0.7f, 0.64f * 0.7f, 1.0f };
+ white_piece_specular = { 0.95f, 0.81f, 0.64f, 1.0f };
+ black_piece_color = { 0.62f * 0.7f, 0.45f * 0.7f, 0.28f * 0.7f, 1.0f };
+ black_piece_specular = { 0.62f, 0.45f, 0.28f, 1.0f };
+
double_buffered = false;
try
{
@@ -396,7 +406,6 @@ private class ChessView3D : ChessView
glEnable (GL_DEPTH_TEST);
glEnable (GL_TEXTURE_2D);
- glEnable (GL_COLOR_MATERIAL);
glBindTexture (GL_TEXTURE_2D, piece_texture);
for (int rank = 0; rank < 8; rank++)
@@ -407,15 +416,19 @@ private class ChessView3D : ChessView
if (piece == null)
continue;
- switch (piece.player.color)
+ if (piece.player.color == Color.WHITE)
{
- case Color.WHITE:
- glColor3f (0.8f, 0.8f, 0.8f);
- break;
- case Color.BLACK:
- glColor3f (0.2f, 0.2f, 0.2f);
- break;
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, white_piece_color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, white_piece_specular);
}
+ else
+ {
+ glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, black_piece_color);
+ glMaterialfv (GL_FRONT_AND_BACK, GL_SPECULAR, black_piece_specular);
+ }
+ GLfloat black[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
+ glMaterialfv (GL_FRONT_AND_BACK, GL_EMISSION, black);
+ glMaterialf (GL_FRONT_AND_BACK, GL_SHININESS, 64.0f);
glPushMatrix ();
glTranslatef (BOARD_BORDER + file * SQUARE_WIDTH + SQUARE_WIDTH / 2, 0.0f, -(BOARD_BORDER + rank * SQUARE_WIDTH + SQUARE_WIDTH / 2));
@@ -450,7 +463,6 @@ private class ChessView3D : ChessView
}
glDisable (GL_TEXTURE_2D);
- glDisable (GL_COLOR_MATERIAL);
}
public override bool button_press_event (Gdk.EventButton event)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]