Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1342)

Unified Diff: mojo/examples/sample_app/spinning_cube.cc

Issue 297113002: Change the color of the spinning cube on click. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/examples/sample_app/spinning_cube.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/examples/sample_app/spinning_cube.cc
diff --git a/mojo/examples/sample_app/spinning_cube.cc b/mojo/examples/sample_app/spinning_cube.cc
index 7983563fd60ebf55eeb415aceefb1b89e7a28e50..024fdca93bf647dafbdf9df11ceddda70b7c16ec 100644
--- a/mojo/examples/sample_app/spinning_cube.cc
+++ b/mojo/examples/sample_app/spinning_cube.cc
@@ -314,6 +314,7 @@ class SpinningCube::GLState {
GLuint program_object_;
GLint position_location_;
GLint mvp_location_;
+ GLint color_location_;
GLuint vbo_vertices_;
GLuint vbo_indices_;
int num_indices_;
@@ -329,6 +330,7 @@ void SpinningCube::GLState::OnGLContextLost() {
program_object_ = 0;
position_location_ = 0;
mvp_location_ = 0;
+ color_location_ = 0;
vbo_vertices_ = 0;
vbo_indices_ = 0;
num_indices_ = 0;
@@ -340,8 +342,10 @@ SpinningCube::SpinningCube()
height_(0),
state_(new GLState()),
fling_multiplier_(1.0f),
- direction_(1) {
+ direction_(1),
+ color_() {
state_->angle_ = 45.0f;
+ set_color(0.0, 1.0, 0.0);
}
SpinningCube::~SpinningCube() {
@@ -369,9 +373,10 @@ void SpinningCube::Init(uint32_t width, uint32_t height) {
const char fragment_shader_source[] =
"precision mediump float; \n"
+ "uniform vec4 u_color; \n"
"void main() \n"
"{ \n"
- " gl_FragColor = vec4( 0.0, 1.0, 0.0, 1.0 ); \n"
+ " gl_FragColor = u_color; \n"
"} \n";
state_->program_object_ = LoadProgram(
@@ -380,6 +385,8 @@ void SpinningCube::Init(uint32_t width, uint32_t height) {
state_->program_object_, "a_position");
state_->mvp_location_ = glGetUniformLocation(
state_->program_object_, "u_mvpMatrix");
+ state_->color_location_ = glGetUniformLocation(
+ state_->program_object_, "u_color");
state_->num_indices_ = GenerateCube(
&state_->vbo_vertices_, &state_->vbo_indices_);
@@ -439,6 +446,7 @@ void SpinningCube::Draw() {
1,
GL_FALSE,
(GLfloat*) &state_->mvp_matrix_.m[0][0]);
+ glUniform4f(state_->color_location_, color_[0], color_[1], color_[2], 1.0);
glDrawElements(GL_TRIANGLES,
state_->num_indices_,
GL_UNSIGNED_SHORT,
« no previous file with comments | « mojo/examples/sample_app/spinning_cube.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698