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

Side by Side Diff: webrtc/modules/video_render/ios/video_render_ios_gles20.h

Issue 1929223003: Reland of Delete video_render module. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_VIDEO_RENDER_IOS_VIDEO_RENDER_IOS_GLES20_H_
12 #define WEBRTC_MODULES_VIDEO_RENDER_IOS_VIDEO_RENDER_IOS_GLES20_H_
13
14 #include <list>
15 #include <map>
16 #include <memory>
17
18 #include "webrtc/base/platform_thread.h"
19 #include "webrtc/modules/video_render/ios/video_render_ios_channel.h"
20 #include "webrtc/modules/video_render/ios/video_render_ios_view.h"
21
22 namespace webrtc {
23
24 class CriticalSectionWrapper;
25 class EventTimerWrapper;
26
27 class VideoRenderIosGles20 {
28 public:
29 VideoRenderIosGles20(VideoRenderIosView* view,
30 bool full_screen,
31 int render_id);
32 virtual ~VideoRenderIosGles20();
33
34 int Init();
35 VideoRenderIosChannel* CreateEaglChannel(int channel,
36 int z_order,
37 float left,
38 float top,
39 float right,
40 float bottom);
41 int DeleteEaglChannel(int channel);
42 bool HasChannel(int channel);
43 bool ScreenUpdateProcess();
44 int GetWindowRect(Rect& rect); // NOLINT
45
46 int GetScreenResolution(uint& screen_width, uint& screen_height); // NOLINT
47 int SetStreamCropping(const uint stream_id,
48 const float left,
49 const float top,
50 const float right,
51 const float bottom);
52
53 int ChangeWindow(void* new_window);
54 int StartRender();
55 int StopRender();
56
57 protected:
58 static bool ScreenUpdateThreadProc(void* obj);
59
60 private:
61 bool RenderOffScreenBuffers();
62 int SwapAndDisplayBuffers();
63
64 private:
65 std::unique_ptr<CriticalSectionWrapper> gles_crit_sec_;
66 EventTimerWrapper* screen_update_event_;
67 // TODO(pbos): Remove unique_ptr and use member directly.
68 std::unique_ptr<rtc::PlatformThread> screen_update_thread_;
69
70 VideoRenderIosView* view_;
71 Rect window_rect_;
72 int window_width_;
73 int window_height_;
74 bool is_full_screen_;
75 GLint backing_width_;
76 GLint backing_height_;
77 GLuint view_renderbuffer_;
78 GLuint view_framebuffer_;
79 GLuint depth_renderbuffer_;
80 std::map<int, VideoRenderIosChannel*> agl_channels_;
81 std::multimap<int, int> z_order_to_channel_;
82 EAGLContext* gles_context_;
83 bool is_rendering_;
84 };
85 } // namespace webrtc
86
87 #endif // WEBRTC_MODULES_VIDEO_RENDER_IOS_VIDEO_RENDER_IOS_GLES20_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698