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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 1559203003: Add GLStreamTextureImage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: s/GL_EXPORT/GPU_EXPORT for windows Created 4 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <stdio.h> 10 #include <stdio.h>
(...skipping 19 matching lines...) Expand all
30 #include "gpu/command_buffer/common/debug_marker_manager.h" 30 #include "gpu/command_buffer/common/debug_marker_manager.h"
31 #include "gpu/command_buffer/common/gles2_cmd_format.h" 31 #include "gpu/command_buffer/common/gles2_cmd_format.h"
32 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 32 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
33 #include "gpu/command_buffer/common/mailbox.h" 33 #include "gpu/command_buffer/common/mailbox.h"
34 #include "gpu/command_buffer/service/buffer_manager.h" 34 #include "gpu/command_buffer/service/buffer_manager.h"
35 #include "gpu/command_buffer/service/context_group.h" 35 #include "gpu/command_buffer/service/context_group.h"
36 #include "gpu/command_buffer/service/context_state.h" 36 #include "gpu/command_buffer/service/context_state.h"
37 #include "gpu/command_buffer/service/error_state.h" 37 #include "gpu/command_buffer/service/error_state.h"
38 #include "gpu/command_buffer/service/feature_info.h" 38 #include "gpu/command_buffer/service/feature_info.h"
39 #include "gpu/command_buffer/service/framebuffer_manager.h" 39 #include "gpu/command_buffer/service/framebuffer_manager.h"
40 #include "gpu/command_buffer/service/gl_stream_texture_image.h"
40 #include "gpu/command_buffer/service/gl_utils.h" 41 #include "gpu/command_buffer/service/gl_utils.h"
41 #include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" 42 #include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h"
42 #include "gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h" 43 #include "gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h"
43 #include "gpu/command_buffer/service/gles2_cmd_validation.h" 44 #include "gpu/command_buffer/service/gles2_cmd_validation.h"
44 #include "gpu/command_buffer/service/gpu_state_tracer.h" 45 #include "gpu/command_buffer/service/gpu_state_tracer.h"
45 #include "gpu/command_buffer/service/gpu_switches.h" 46 #include "gpu/command_buffer/service/gpu_switches.h"
46 #include "gpu/command_buffer/service/gpu_tracer.h" 47 #include "gpu/command_buffer/service/gpu_tracer.h"
47 #include "gpu/command_buffer/service/image_manager.h" 48 #include "gpu/command_buffer/service/image_manager.h"
48 #include "gpu/command_buffer/service/logger.h" 49 #include "gpu/command_buffer/service/logger.h"
49 #include "gpu/command_buffer/service/mailbox_manager.h" 50 #include "gpu/command_buffer/service/mailbox_manager.h"
(...skipping 1568 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 1619
1619 void DoUniformMatrix2fv( 1620 void DoUniformMatrix2fv(
1620 GLint fake_location, GLsizei count, GLboolean transpose, 1621 GLint fake_location, GLsizei count, GLboolean transpose,
1621 const GLfloat* value); 1622 const GLfloat* value);
1622 void DoUniformMatrix3fv( 1623 void DoUniformMatrix3fv(
1623 GLint fake_location, GLsizei count, GLboolean transpose, 1624 GLint fake_location, GLsizei count, GLboolean transpose,
1624 const GLfloat* value); 1625 const GLfloat* value);
1625 void DoUniformMatrix4fv( 1626 void DoUniformMatrix4fv(
1626 GLint fake_location, GLsizei count, GLboolean transpose, 1627 GLint fake_location, GLsizei count, GLboolean transpose,
1627 const GLfloat* value); 1628 const GLfloat* value);
1629 void DoUniformMatrix4fvStreamTextureMatrixCHROMIUM(
1630 GLint fake_location,
1631 GLboolean transpose,
1632 const GLfloat* default_value);
1628 void DoUniformMatrix2x3fv( 1633 void DoUniformMatrix2x3fv(
1629 GLint fake_location, GLsizei count, GLboolean transpose, 1634 GLint fake_location, GLsizei count, GLboolean transpose,
1630 const GLfloat* value); 1635 const GLfloat* value);
1631 void DoUniformMatrix2x4fv( 1636 void DoUniformMatrix2x4fv(
1632 GLint fake_location, GLsizei count, GLboolean transpose, 1637 GLint fake_location, GLsizei count, GLboolean transpose,
1633 const GLfloat* value); 1638 const GLfloat* value);
1634 void DoUniformMatrix3x2fv( 1639 void DoUniformMatrix3x2fv(
1635 GLint fake_location, GLsizei count, GLboolean transpose, 1640 GLint fake_location, GLsizei count, GLboolean transpose,
1636 const GLfloat* value); 1641 const GLfloat* value);
1637 void DoUniformMatrix3x4fv( 1642 void DoUniformMatrix3x4fv(
(...skipping 5841 matching lines...) Expand 10 before | Expand all | Expand 10 after
7479 "glUniformMatrix4fv", 7484 "glUniformMatrix4fv",
7480 Program::kUniformMatrix4f, 7485 Program::kUniformMatrix4f,
7481 &real_location, 7486 &real_location,
7482 &type, 7487 &type,
7483 &count)) { 7488 &count)) {
7484 return; 7489 return;
7485 } 7490 }
7486 glUniformMatrix4fv(real_location, count, transpose, value); 7491 glUniformMatrix4fv(real_location, count, transpose, value);
7487 } 7492 }
7488 7493
7494 void GLES2DecoderImpl::DoUniformMatrix4fvStreamTextureMatrixCHROMIUM(
7495 GLint fake_location,
7496 GLboolean transpose,
7497 const GLfloat* default_value) {
7498 float gl_matrix[16];
7499
7500 // If we can't get a matrix from the texture, then use a default.
7501 // TODO(liberato): remove |default_value| and replace with an identity matrix.
7502 // It is only present as a transitionary step until StreamTexture supplies
7503 // the matrix via GLImage. Once that happens, GLRenderer can quit sending
7504 // in a default.
7505 memcpy(gl_matrix, default_value, sizeof(gl_matrix));
7506
7507 // This refers to the bound external texture on the active unit.
7508 TextureUnit& unit = state_.texture_units[state_.active_texture_unit];
7509 if (TextureRef* texture_ref = unit.bound_texture_external_oes.get()) {
7510 if (GLStreamTextureImage* image =
7511 texture_ref->texture()->GetLevelStreamTextureImage(
7512 GL_TEXTURE_EXTERNAL_OES, 0)) {
7513 image->GetTextureMatrix(gl_matrix);
7514 }
7515 } else {
7516 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
7517 "DoUniformMatrix4vStreamTextureMatrix",
7518 "no texture bound");
7519 return;
7520 }
7521
7522 GLenum type = 0;
7523 GLint real_location = -1;
7524 GLsizei count = 1;
7525 if (!PrepForSetUniformByLocation(fake_location, "glUniformMatrix4fv",
7526 Program::kUniformMatrix4f, &real_location,
7527 &type, &count)) {
7528 return;
7529 }
7530
7531 glUniformMatrix4fv(real_location, count, transpose, gl_matrix);
7532 }
7533
7489 void GLES2DecoderImpl::DoUniformMatrix2x3fv( 7534 void GLES2DecoderImpl::DoUniformMatrix2x3fv(
7490 GLint fake_location, GLsizei count, GLboolean transpose, 7535 GLint fake_location, GLsizei count, GLboolean transpose,
7491 const GLfloat* value) { 7536 const GLfloat* value) {
7492 GLenum type = 0; 7537 GLenum type = 0;
7493 GLint real_location = -1; 7538 GLint real_location = -1;
7494 if (!PrepForSetUniformByLocation(fake_location, 7539 if (!PrepForSetUniformByLocation(fake_location,
7495 "glUniformMatrix2x3fv", 7540 "glUniformMatrix2x3fv",
7496 Program::kUniformMatrix2x3f, 7541 Program::kUniformMatrix2x3f,
7497 &real_location, 7542 &real_location,
7498 &type, 7543 &type,
(...skipping 8398 matching lines...) Expand 10 before | Expand all | Expand 10 after
15897 } 15942 }
15898 15943
15899 // Include the auto-generated part of this file. We split this because it means 15944 // Include the auto-generated part of this file. We split this because it means
15900 // we can easily edit the non-auto generated parts right here in this file 15945 // we can easily edit the non-auto generated parts right here in this file
15901 // instead of having to edit some template or the code generator. 15946 // instead of having to edit some template or the code generator.
15902 #include "base/macros.h" 15947 #include "base/macros.h"
15903 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 15948 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
15904 15949
15905 } // namespace gles2 15950 } // namespace gles2
15906 } // namespace gpu 15951 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gl_stream_texture_image.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698