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

Unified Diff: chrome/browser/android/vr_shell/vr_shell_renderer.cc

Issue 2795793002: Implementation of elbow model for the controller position and rotation. (Closed)
Patch Set: Rebasing. Created 3 years, 8 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
Index: chrome/browser/android/vr_shell/vr_shell_renderer.cc
diff --git a/chrome/browser/android/vr_shell/vr_shell_renderer.cc b/chrome/browser/android/vr_shell/vr_shell_renderer.cc
index 7951074d0453fedd5f9c2eba49fefdeb4030a37e..3d498ac98cf47f5cfd13a2384d49a96af5e949e6 100644
--- a/chrome/browser/android/vr_shell/vr_shell_renderer.cc
+++ b/chrome/browser/android/vr_shell/vr_shell_renderer.cc
@@ -185,6 +185,7 @@ const char* GetShaderSource(vr_shell::ShaderID shader) {
uniform lowp vec4 color;
uniform mediump float fade_point;
uniform mediump float fade_end;
+ uniform mediump float u_Opacity;
void main() {
mediump vec2 uv = v_TexCoordinate;
@@ -195,7 +196,8 @@ const char* GetShaderSource(vr_shell::ShaderID shader) {
mediump float total_fade = front_fade_factor * back_fade_factor;
lowp vec4 texture_color = texture2D(texture_unit, uv);
lowp vec4 final_color = color * texture_color;
- gl_FragColor = vec4(final_color.xyz, final_color.w * total_fade);
+ gl_FragColor = vec4(final_color.xyz,
+ final_color.w * total_fade * u_Opacity);
}
/* clang-format on */);
case vr_shell::ShaderID::GRADIENT_QUAD_FRAGMENT_SHADER:
@@ -220,9 +222,11 @@ const char* GetShaderSource(vr_shell::ShaderID shader) {
/* clang-format off */
uniform sampler2D u_texture;
varying vec2 v_TexCoordinate;
+ uniform mediump float u_Opacity;
void main() {
- gl_FragColor = texture2D(u_texture, v_TexCoordinate);
+ lowp vec4 texture_color = texture2D(u_texture, v_TexCoordinate);
+ gl_FragColor = vec4(texture_color.xyz, texture_color.w * u_Opacity);
}
/* clang-format on */);
default:
@@ -490,6 +494,7 @@ LaserRenderer::LaserRenderer()
color_handle_ = glGetUniformLocation(program_handle_, "color");
fade_point_handle_ = glGetUniformLocation(program_handle_, "fade_point");
fade_end_handle_ = glGetUniformLocation(program_handle_, "fade_end");
+ opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity");
glGenTextures(1, &texture_data_handle_);
glBindTexture(GL_TEXTURE_2D, texture_data_handle_);
@@ -503,7 +508,7 @@ LaserRenderer::LaserRenderer()
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
}
-void LaserRenderer::Draw(const vr::Mat4f& view_proj_matrix) {
+void LaserRenderer::Draw(float opacity, const vr::Mat4f& view_proj_matrix) {
PrepareToDraw(model_view_proj_matrix_handle_, view_proj_matrix);
// Link texture data with texture unit.
@@ -515,6 +520,7 @@ void LaserRenderer::Draw(const vr::Mat4f& view_proj_matrix) {
kLaserColor[3]);
glUniform1f(fade_point_handle_, kFadePoint);
glUniform1f(fade_end_handle_, kFadeEnd);
+ glUniform1f(opacity_handle_, opacity);
glDrawArrays(GL_TRIANGLES, 0, kVerticesNumber);
@@ -530,6 +536,7 @@ ControllerRenderer::ControllerRenderer()
model_view_proj_matrix_handle_ =
glGetUniformLocation(program_handle_, "u_ModelViewProjMatrix");
tex_uniform_handle_ = glGetUniformLocation(program_handle_, "u_Texture");
+ opacity_handle_ = glGetUniformLocation(program_handle_, "u_Opacity");
}
ControllerRenderer::~ControllerRenderer() = default;
@@ -578,9 +585,12 @@ void ControllerRenderer::SetUp(std::unique_ptr<VrControllerModel> model) {
}
void ControllerRenderer::Draw(VrControllerModel::State state,
+ float opacity,
const vr::Mat4f& view_proj_matrix) {
glUseProgram(program_handle_);
+ glUniform1f(opacity_handle_, opacity);
+
glUniformMatrix4fv(model_view_proj_matrix_handle_, 1, false,
MatrixToGLArray(view_proj_matrix).data());

Powered by Google App Engine
This is Rietveld 408576698