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

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: nit 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
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_renderer.h ('k') | device/vr/vr_math.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 61a5f0d133060299746d0607cb49e03ed16d1c32..b037a0b0cb76ce00ab5053fe25f39f9a3862ea39 100644
--- a/chrome/browser/android/vr_shell/vr_shell_renderer.cc
+++ b/chrome/browser/android/vr_shell/vr_shell_renderer.cc
@@ -208,6 +208,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;
@@ -218,7 +219,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:
@@ -244,9 +246,11 @@ const char* GetShaderSource(vr_shell::ShaderID shader) {
precision mediump float;
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:
@@ -544,6 +548,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_);
@@ -557,7 +562,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.
@@ -569,6 +574,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);
@@ -584,6 +590,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;
@@ -632,9 +639,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());
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_renderer.h ('k') | device/vr/vr_math.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698