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

Side by Side Diff: cc/output/gl_renderer.h

Issue 2121043002: 16 bpp video stream capture, render and WebGL usage - Realsense R200 & SR300 support. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: WebGL video to texture support and readPixels from R16UI for CPU access Created 4 years, 4 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 2010 The Chromium Authors. All rights reserved. 1 // Copyright 2010 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 #ifndef CC_OUTPUT_GL_RENDERER_H_ 5 #ifndef CC_OUTPUT_GL_RENDERER_H_
6 #define CC_OUTPUT_GL_RENDERER_H_ 6 #define CC_OUTPUT_GL_RENDERER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/cancelable_callback.h" 11 #include "base/cancelable_callback.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "cc/base/cc_export.h" 13 #include "cc/base/cc_export.h"
14 #include "cc/output/direct_renderer.h" 14 #include "cc/output/direct_renderer.h"
15 #include "cc/output/gl_renderer_draw_cache.h" 15 #include "cc/output/gl_renderer_draw_cache.h"
16 #include "cc/output/program_binding.h" 16 #include "cc/output/program_binding.h"
17 #include "cc/output/renderer.h" 17 #include "cc/output/renderer.h"
18 #include "cc/quads/debug_border_draw_quad.h" 18 #include "cc/quads/debug_border_draw_quad.h"
19 #include "cc/quads/render_pass_draw_quad.h" 19 #include "cc/quads/render_pass_draw_quad.h"
20 #include "cc/quads/solid_color_draw_quad.h" 20 #include "cc/quads/solid_color_draw_quad.h"
21 #include "cc/quads/tile_draw_quad.h" 21 #include "cc/quads/tile_draw_quad.h"
22 #include "cc/quads/y_video_draw_quad.h"
22 #include "cc/quads/yuv_video_draw_quad.h" 23 #include "cc/quads/yuv_video_draw_quad.h"
23 #include "ui/gfx/geometry/quad_f.h" 24 #include "ui/gfx/geometry/quad_f.h"
24 25
25 class SkBitmap; 26 class SkBitmap;
26 27
27 namespace gpu { 28 namespace gpu {
28 namespace gles2 { 29 namespace gles2 {
29 class GLES2Interface; 30 class GLES2Interface;
30 } 31 }
31 } 32 }
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 const gfx::Transform& device_transform, 216 const gfx::Transform& device_transform,
216 const gfx::QuadF& aa_quad, 217 const gfx::QuadF& aa_quad,
217 const gfx::QuadF* clip_region); 218 const gfx::QuadF* clip_region);
218 void DrawContentQuadNoAA(const DrawingFrame* frame, 219 void DrawContentQuadNoAA(const DrawingFrame* frame,
219 const ContentDrawQuadBase* quad, 220 const ContentDrawQuadBase* quad,
220 ResourceId resource_id, 221 ResourceId resource_id,
221 const gfx::QuadF* clip_region); 222 const gfx::QuadF* clip_region);
222 void DrawYUVVideoQuad(const DrawingFrame* frame, 223 void DrawYUVVideoQuad(const DrawingFrame* frame,
223 const YUVVideoDrawQuad* quad, 224 const YUVVideoDrawQuad* quad,
224 const gfx::QuadF* clip_region); 225 const gfx::QuadF* clip_region);
226 void DrawYVideoQuad(const DrawingFrame* frame,
227 const YVideoDrawQuad* quad,
228 const gfx::QuadF* clip_region);
225 void DrawPictureQuad(const DrawingFrame* frame, 229 void DrawPictureQuad(const DrawingFrame* frame,
226 const PictureDrawQuad* quad, 230 const PictureDrawQuad* quad,
227 const gfx::QuadF* clip_region); 231 const gfx::QuadF* clip_region);
228 232
229 void SetShaderOpacity(float opacity, int alpha_location); 233 void SetShaderOpacity(float opacity, int alpha_location);
230 void SetShaderQuadF(const gfx::QuadF& quad, int quad_location); 234 void SetShaderQuadF(const gfx::QuadF& quad, int quad_location);
231 void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame, 235 void DrawQuadGeometryClippedByQuadF(const DrawingFrame* frame,
232 const gfx::Transform& draw_transform, 236 const gfx::Transform& draw_transform,
233 const gfx::RectF& quad_rect, 237 const gfx::RectF& quad_rect,
234 const gfx::QuadF& clipping_region_quad, 238 const gfx::QuadF& clipping_region_quad,
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 RenderPassColorMatrixProgramAA; 341 RenderPassColorMatrixProgramAA;
338 typedef ProgramBinding<VertexShaderPosTexTransform, 342 typedef ProgramBinding<VertexShaderPosTexTransform,
339 FragmentShaderRGBATexAlphaMaskColorMatrix> 343 FragmentShaderRGBATexAlphaMaskColorMatrix>
340 RenderPassMaskColorMatrixProgram; 344 RenderPassMaskColorMatrixProgram;
341 345
342 // Video shaders. 346 // Video shaders.
343 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex> 347 typedef ProgramBinding<VertexShaderVideoTransform, FragmentShaderRGBATex>
344 VideoStreamTextureProgram; 348 VideoStreamTextureProgram;
345 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset, 349 typedef ProgramBinding<VertexShaderPosTexYUVStretchOffset,
346 FragmentShaderYUVVideo> VideoYUVProgram; 350 FragmentShaderYUVVideo> VideoYUVProgram;
351 typedef ProgramBinding<VertexShaderPosTexTransform, FragmentShaderYVideo>
352 VideoYProgram;
347 353
348 // Special purpose / effects shaders. 354 // Special purpose / effects shaders.
349 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor> 355 typedef ProgramBinding<VertexShaderPos, FragmentShaderColor>
350 DebugBorderProgram; 356 DebugBorderProgram;
351 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor> 357 typedef ProgramBinding<VertexShaderQuad, FragmentShaderColor>
352 SolidColorProgram; 358 SolidColorProgram;
353 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA> 359 typedef ProgramBinding<VertexShaderQuadAA, FragmentShaderColorAA>
354 SolidColorProgramAA; 360 SolidColorProgramAA;
355 361
356 const TileProgram* GetTileProgram( 362 const TileProgram* GetTileProgram(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 TexCoordPrecision precision, 412 TexCoordPrecision precision,
407 SamplerType sampler); 413 SamplerType sampler);
408 const NonPremultipliedTextureBackgroundProgram* 414 const NonPremultipliedTextureBackgroundProgram*
409 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision, 415 GetNonPremultipliedTextureBackgroundProgram(TexCoordPrecision precision,
410 SamplerType sampler); 416 SamplerType sampler);
411 417
412 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision, 418 const VideoYUVProgram* GetVideoYUVProgram(TexCoordPrecision precision,
413 SamplerType sampler, 419 SamplerType sampler,
414 bool use_alpha_texture, 420 bool use_alpha_texture,
415 bool use_nv12); 421 bool use_nv12);
422 const VideoYProgram* GetVideoYProgram(TexCoordPrecision precision,
423 SamplerType sampler);
416 const VideoStreamTextureProgram* GetVideoStreamTextureProgram( 424 const VideoStreamTextureProgram* GetVideoStreamTextureProgram(
417 TexCoordPrecision precision); 425 TexCoordPrecision precision);
418 426
419 const DebugBorderProgram* GetDebugBorderProgram(); 427 const DebugBorderProgram* GetDebugBorderProgram();
420 const SolidColorProgram* GetSolidColorProgram(); 428 const SolidColorProgram* GetSolidColorProgram();
421 const SolidColorProgramAA* GetSolidColorProgramAA(); 429 const SolidColorProgramAA* GetSolidColorProgramAA();
422 430
423 TileProgram 431 TileProgram
424 tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1]; 432 tile_program_[LAST_TEX_COORD_PRECISION + 1][LAST_SAMPLER_TYPE + 1];
425 TileProgramOpaque 433 TileProgramOpaque
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 [LAST_BLEND_MODE + 1] 480 [LAST_BLEND_MODE + 1]
473 [LAST_MASK_VALUE + 1]; 481 [LAST_MASK_VALUE + 1];
474 RenderPassMaskColorMatrixProgramAA 482 RenderPassMaskColorMatrixProgramAA
475 render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1] 483 render_pass_mask_color_matrix_program_aa_[LAST_TEX_COORD_PRECISION + 1]
476 [LAST_SAMPLER_TYPE + 1] 484 [LAST_SAMPLER_TYPE + 1]
477 [LAST_BLEND_MODE + 1] 485 [LAST_BLEND_MODE + 1]
478 [LAST_MASK_VALUE + 1]; 486 [LAST_MASK_VALUE + 1];
479 487
480 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1] 488 VideoYUVProgram video_yuv_program_[LAST_TEX_COORD_PRECISION + 1]
481 [LAST_SAMPLER_TYPE + 1][2][2]; 489 [LAST_SAMPLER_TYPE + 1][2][2];
490 VideoYProgram video_y_program_[LAST_TEX_COORD_PRECISION + 1]
491 [LAST_SAMPLER_TYPE + 1];
482 VideoStreamTextureProgram 492 VideoStreamTextureProgram
483 video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1]; 493 video_stream_texture_program_[LAST_TEX_COORD_PRECISION + 1];
484 494
485 DebugBorderProgram debug_border_program_; 495 DebugBorderProgram debug_border_program_;
486 SolidColorProgram solid_color_program_; 496 SolidColorProgram solid_color_program_;
487 SolidColorProgramAA solid_color_program_aa_; 497 SolidColorProgramAA solid_color_program_aa_;
488 498
489 gpu::gles2::GLES2Interface* gl_; 499 gpu::gles2::GLES2Interface* gl_;
490 gpu::ContextSupport* context_support_; 500 gpu::ContextSupport* context_support_;
491 501
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 533
524 SkBitmap on_demand_tile_raster_bitmap_; 534 SkBitmap on_demand_tile_raster_bitmap_;
525 ResourceId on_demand_tile_raster_resource_id_; 535 ResourceId on_demand_tile_raster_resource_id_;
526 BoundGeometry bound_geometry_; 536 BoundGeometry bound_geometry_;
527 DISALLOW_COPY_AND_ASSIGN(GLRenderer); 537 DISALLOW_COPY_AND_ASSIGN(GLRenderer);
528 }; 538 };
529 539
530 } // namespace cc 540 } // namespace cc
531 541
532 #endif // CC_OUTPUT_GL_RENDERER_H_ 542 #endif // CC_OUTPUT_GL_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698