Merge lp:~kdub/mir/native-buffer-type into lp:~mir-team/mir/trunk
- native-buffer-type
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Kevin DuBois |
Approved revision: | no longer in the source branch. |
Merged at revision: | 676 |
Proposed branch: | lp:~kdub/mir/native-buffer-type |
Merge into: | lp:~mir-team/mir/trunk |
Diff against target: |
2070 lines (+342/-380) 76 files modified
examples/demo_client.c (+13/-6) include/client/mir_toolkit/mir_client_library.h (+11/-1) include/server/mir/compositor/buffer.h (+2/-0) include/shared/mir_toolkit/client_types.h (+9/-17) include/shared/mir_toolkit/mesa/native_display.h (+1/-0) include/shared/mir_toolkit/mir_native_buffer.h (+44/-0) include/test/mir_test_doubles/mock_alloc_adaptor.h (+0/-1) include/test/mir_test_doubles/mock_android_buffer.h (+0/-57) include/test/mir_test_doubles/mock_buffer.h (+3/-0) include/test/mir_test_doubles/mock_display_support_provider.h (+1/-1) include/test/mir_test_doubles/mock_hwc_interface.h (+1/-1) include/test/mir_test_doubles/mock_hwc_organizer.h (+1/-1) include/test/mir_test_doubles/stub_buffer.h (+8/-1) src/client/aging_buffer.h (+2/-0) src/client/android/android_client_buffer.cpp (+13/-17) src/client/android/android_client_buffer.h (+3/-4) src/client/android/android_client_platform.cpp (+5/-0) src/client/android/android_client_platform.h (+1/-0) src/client/android/client_surface_interpreter.cpp (+4/-4) src/client/android/client_surface_interpreter.h (+2/-2) src/client/client_buffer.h (+4/-4) src/client/client_platform.h (+3/-0) src/client/gbm/gbm_client_buffer.cpp (+2/-7) src/client/gbm/gbm_client_buffer.h (+2/-3) src/client/gbm/gbm_client_platform.cpp (+5/-0) src/client/gbm/gbm_client_platform.h (+1/-0) src/client/gbm/mesa_native_display_container.cpp (+4/-1) src/client/mir_client_library.cpp (+7/-11) src/client/mir_native_buffer.h (+0/-30) src/client/mir_surface.cpp (+9/-3) src/client/mir_surface.h (+3/-1) src/server/compositor/temporary_buffers.cpp (+4/-0) src/server/compositor/temporary_buffers.h (+1/-0) src/server/graphics/android/android_buffer.h (+0/-51) src/server/graphics/android/android_buffer_allocator.cpp (+1/-1) src/server/graphics/android/android_graphic_buffer_allocator.h (+1/-1) src/server/graphics/android/buffer.h (+4/-6) src/server/graphics/android/default_framebuffer_factory.cpp (+3/-2) src/server/graphics/android/display_support_provider.h (+5/-2) src/server/graphics/android/fb_device.cpp (+3/-2) src/server/graphics/android/fb_device.h (+1/-1) src/server/graphics/android/fb_simple_swapper.cpp (+3/-2) src/server/graphics/android/fb_simple_swapper.h (+5/-5) src/server/graphics/android/fb_swapper.h (+9/-5) src/server/graphics/android/graphic_buffer_allocator.h (+2/-2) src/server/graphics/android/hwc10_device.cpp (+2/-1) src/server/graphics/android/hwc10_device.h (+1/-1) src/server/graphics/android/hwc11_device.cpp (+2/-1) src/server/graphics/android/hwc11_device.h (+1/-1) src/server/graphics/android/hwc_common_device.h (+1/-1) src/server/graphics/android/hwc_device.h (+1/-1) src/server/graphics/android/hwc_layerlist.cpp (+3/-2) src/server/graphics/android/hwc_layerlist.h (+6/-3) src/server/graphics/android/server_render_window.cpp (+1/-1) src/server/graphics/android/server_render_window.h (+5/-2) src/server/graphics/gbm/gbm_buffer.cpp (+5/-0) src/server/graphics/gbm/gbm_buffer.h (+1/-0) tests/integration-tests/client/test_client_render.cpp (+0/-1) tests/integration-tests/graphics/android/test_buffer_integration.cpp (+0/-7) tests/unit-tests/client/android/test_client_android_buffer.cpp (+5/-21) tests/unit-tests/client/android/test_client_surface_interpreter.cpp (+12/-10) tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp (+1/-1) tests/unit-tests/client/test_aging_buffer.cpp (+1/-6) tests/unit-tests/client/test_client_buffer_depository.cpp (+2/-3) tests/unit-tests/client/test_client_mir_surface.cpp (+17/-25) tests/unit-tests/client/test_client_platform.cpp (+14/-0) tests/unit-tests/client/test_mir_connection.cpp (+1/-0) tests/unit-tests/compositor/test_temporary_buffers.cpp (+9/-0) tests/unit-tests/graphics/android/test_fb_device.cpp (+3/-3) tests/unit-tests/graphics/android/test_fb_simple_swapper.cpp (+11/-11) tests/unit-tests/graphics/android/test_framebuffer_factory.cpp (+2/-2) tests/unit-tests/graphics/android/test_hwc10_device.cpp (+3/-2) tests/unit-tests/graphics/android/test_hwc11_device.cpp (+4/-3) tests/unit-tests/graphics/android/test_hwc_device.cpp (+1/-1) tests/unit-tests/graphics/android/test_hwc_layerlist.cpp (+3/-3) tests/unit-tests/graphics/android/test_server_interpreter.cpp (+18/-14) |
To merge this branch: | bzr merge lp:~kdub/mir/native-buffer-type |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email: mp+162635@code.launchpad.net |
Commit message
use MirNativeBuffer as the platform independent type to represent the platform's native handle
Description of the change
improve handling of platform specific buffer handles accross the system by using a type, MirNativeBuffer to describe the platform-specific buffer type
This is a branch that I split off from my internal-client work for android.
MirBufferPackage is the native handle for the gbm/mesa platform. ANativeWindowBuffer is the native handle for android.
This branch addresses these problems
1) On the client side, we were using mcl::ClientBuff
2) On the server side, we had mc::Buffer:
Currently, with lp:mir and mesa/gbm internal clients, we use get_ipc_package() to pack the ipc package, and then immediately unpack it to submit to driver. This is usually just 2 ints on gbm, but could be 40+ on android, so this avoids that work, and gives us a server-side representation of the buffer whenever we need it.
Kevin DuBois (kdub) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:672
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Alan Griffiths (alan-griffiths) wrote : | # |
1623 + //auto buffer_package = std::make_
1624 + //ON_CALL(*this, native_
1625 + // .WillByDefault(
don't keep dead code in comments.
1673 +#if 0
1674 TEST_F(
1675 {
1676 using namespace testing;
1677 @@ -391,6 +394,7 @@
1678 /* check for same contents */
1679 EXPECT_
1680 }
1681 +#endif
don't keep dead code in conditionals.
1689 +#if 0
1690 TEST_F(
1691 {
1692 using namespace testing;
1693 @@ -520,7 +525,7 @@
1694
1695 EXPECT_
1696 }
1697 -
1698 +#endif
don't keep dead code in conditionals.
Kevin DuBois (kdub) wrote : | # |
oops, sorry about the dead code... fixed
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:673
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Preview Diff
1 | === modified file 'examples/demo_client.c' | |||
2 | --- examples/demo_client.c 2013-05-02 00:11:18 +0000 | |||
3 | +++ examples/demo_client.c 2013-05-09 15:25:39 +0000 | |||
4 | @@ -40,6 +40,8 @@ | |||
5 | 40 | /// \snippet demo_client.c surface_release_tag | 40 | /// \snippet demo_client.c surface_release_tag |
6 | 41 | ///\subsection connection_release We release our connection | 41 | ///\subsection connection_release We release our connection |
7 | 42 | /// \snippet demo_client.c connection_release_tag | 42 | /// \snippet demo_client.c connection_release_tag |
8 | 43 | ///\subsection get the raw, platform-specific buffer handle for the current buffer | ||
9 | 44 | /// \snippet demo_client.c get_current_buffer_tag | ||
10 | 43 | /// \example demo_client.c A simple mir client | 45 | /// \example demo_client.c A simple mir client |
11 | 44 | ///\section MirDemoState MirDemoState | 46 | ///\section MirDemoState MirDemoState |
12 | 45 | /// The handles needs to be accessible both to callbacks and to the control function. | 47 | /// The handles needs to be accessible both to callbacks and to the control function. |
13 | @@ -156,13 +158,18 @@ | |||
14 | 156 | { | 158 | { |
15 | 157 | // We can query the current graphics buffer attributes | 159 | // We can query the current graphics buffer attributes |
16 | 158 | { | 160 | { |
20 | 159 | MirBufferPackage buffer_package; | 161 | ///\internal [get_current_buffer_tag] |
21 | 160 | buffer_package.data_items = -1; | 162 | MirNativeBuffer* buffer_package = NULL; |
19 | 161 | buffer_package.fd_items = -1; | ||
22 | 162 | mir_surface_get_current_buffer(mcd.surface, &buffer_package); | 163 | mir_surface_get_current_buffer(mcd.surface, &buffer_package); |
26 | 163 | assert(0 <= buffer_package.data_items); | 164 | assert(buffer_package != NULL); |
27 | 164 | assert(0 <= buffer_package.fd_items); | 165 | if (mir_platform_type_gbm == mir_surface_get_platform_type(mcd.surface)) |
28 | 165 | 166 | { | |
29 | 167 | // Interpret buffer_package as MirBufferPackage | ||
30 | 168 | } else if (mir_platform_type_android == mir_surface_get_platform_type(mcd.surface)) | ||
31 | 169 | { | ||
32 | 170 | // Interpret buffer_package as ANativeWindowBuffer | ||
33 | 171 | } | ||
34 | 172 | ///\internal [get_current_buffer_tag] | ||
35 | 166 | // In a real application we'd render into the current buffer | 173 | // In a real application we'd render into the current buffer |
36 | 167 | } | 174 | } |
37 | 168 | 175 | ||
38 | 169 | 176 | ||
39 | === modified file 'include/client/mir_toolkit/mir_client_library.h' | |||
40 | --- include/client/mir_toolkit/mir_client_library.h 2013-05-02 00:11:18 +0000 | |||
41 | +++ include/client/mir_toolkit/mir_client_library.h 2013-05-09 15:25:39 +0000 | |||
42 | @@ -18,6 +18,7 @@ | |||
43 | 18 | #ifndef MIR_CLIENT_LIBRARY_H | 18 | #ifndef MIR_CLIENT_LIBRARY_H |
44 | 19 | #define MIR_CLIENT_LIBRARY_H | 19 | #define MIR_CLIENT_LIBRARY_H |
45 | 20 | 20 | ||
46 | 21 | #include <mir_toolkit/mir_native_buffer.h> | ||
47 | 21 | #include <mir_toolkit/client_types.h> | 22 | #include <mir_toolkit/client_types.h> |
48 | 22 | #include <mir_toolkit/common.h> | 23 | #include <mir_toolkit/common.h> |
49 | 23 | 24 | ||
50 | @@ -176,12 +177,21 @@ | |||
51 | 176 | void mir_surface_get_parameters(MirSurface *surface, MirSurfaceParameters *parameters); | 177 | void mir_surface_get_parameters(MirSurface *surface, MirSurfaceParameters *parameters); |
52 | 177 | 178 | ||
53 | 178 | /** | 179 | /** |
54 | 180 | * Get the underlying platform type so the buffer obtained in "raw" representation | ||
55 | 181 | * in mir_surface_get_current_buffer() can be understood | ||
56 | 182 | * \pre The surface is valid | ||
57 | 183 | * \param [in] surface The surface | ||
58 | 184 | * \return One of mir_platform_type_android or mir_platform_type_gbm | ||
59 | 185 | */ | ||
60 | 186 | MirPlatformType mir_surface_get_platform_type(MirSurface *surface); | ||
61 | 187 | |||
62 | 188 | /** | ||
63 | 179 | * Get a surface's buffer in "raw" representation. | 189 | * Get a surface's buffer in "raw" representation. |
64 | 180 | * \pre The surface is valid | 190 | * \pre The surface is valid |
65 | 181 | * \param [in] surface The surface | 191 | * \param [in] surface The surface |
66 | 182 | * \param [out] buffer_package Structure to be populated | 192 | * \param [out] buffer_package Structure to be populated |
67 | 183 | */ | 193 | */ |
69 | 184 | void mir_surface_get_current_buffer(MirSurface *surface, MirBufferPackage *buffer_package); | 194 | void mir_surface_get_current_buffer(MirSurface *surface, MirNativeBuffer **buffer_package); |
70 | 185 | 195 | ||
71 | 186 | /** | 196 | /** |
72 | 187 | * Get a surface's graphics_region, i.e., map the graphics buffer to main | 197 | * Get a surface's graphics_region, i.e., map the graphics buffer to main |
73 | 188 | 198 | ||
74 | === modified file 'include/server/mir/compositor/buffer.h' | |||
75 | --- include/server/mir/compositor/buffer.h 2013-04-24 05:22:20 +0000 | |||
76 | +++ include/server/mir/compositor/buffer.h 2013-05-09 15:25:39 +0000 | |||
77 | @@ -20,6 +20,7 @@ | |||
78 | 20 | #define MIR_COMPOSITOR_BUFFER_H_ | 20 | #define MIR_COMPOSITOR_BUFFER_H_ |
79 | 21 | 21 | ||
80 | 22 | #include "mir/surfaces/graphic_region.h" | 22 | #include "mir/surfaces/graphic_region.h" |
81 | 23 | #include "mir_toolkit/mir_native_buffer.h" | ||
82 | 23 | 24 | ||
83 | 24 | #include <memory> | 25 | #include <memory> |
84 | 25 | 26 | ||
85 | @@ -36,6 +37,7 @@ | |||
86 | 36 | virtual ~Buffer() {} | 37 | virtual ~Buffer() {} |
87 | 37 | 38 | ||
88 | 38 | virtual std::shared_ptr<BufferIPCPackage> get_ipc_package() const = 0; | 39 | virtual std::shared_ptr<BufferIPCPackage> get_ipc_package() const = 0; |
89 | 40 | virtual std::shared_ptr<MirNativeBuffer> native_buffer_handle() const = 0; | ||
90 | 39 | virtual BufferID id() const = 0; | 41 | virtual BufferID id() const = 0; |
91 | 40 | 42 | ||
92 | 41 | protected: | 43 | protected: |
93 | 42 | 44 | ||
94 | === modified file 'include/shared/mir_toolkit/client_types.h' | |||
95 | --- include/shared/mir_toolkit/client_types.h 2013-05-02 00:11:18 +0000 | |||
96 | +++ include/shared/mir_toolkit/client_types.h 2013-05-09 15:25:39 +0000 | |||
97 | @@ -118,7 +118,15 @@ | |||
98 | 118 | 118 | ||
99 | 119 | enum { mir_platform_package_max = 32 }; | 119 | enum { mir_platform_package_max = 32 }; |
100 | 120 | 120 | ||
102 | 121 | /** TODO */ | 121 | /** |
103 | 122 | * The native buffer type for the system the client is connected on | ||
104 | 123 | */ | ||
105 | 124 | typedef enum MirPlatformType | ||
106 | 125 | { | ||
107 | 126 | mir_platform_type_gbm, | ||
108 | 127 | mir_platform_type_android | ||
109 | 128 | } MirPlatformType; | ||
110 | 129 | |||
111 | 122 | typedef struct MirPlatformPackage | 130 | typedef struct MirPlatformPackage |
112 | 123 | { | 131 | { |
113 | 124 | int data_items; | 132 | int data_items; |
114 | @@ -128,22 +136,6 @@ | |||
115 | 128 | int fd[mir_platform_package_max]; | 136 | int fd[mir_platform_package_max]; |
116 | 129 | } MirPlatformPackage; | 137 | } MirPlatformPackage; |
117 | 130 | 138 | ||
118 | 131 | enum { mir_buffer_package_max = 32 }; | ||
119 | 132 | |||
120 | 133 | /** TODO */ | ||
121 | 134 | typedef struct MirBufferPackage | ||
122 | 135 | { | ||
123 | 136 | int data_items; | ||
124 | 137 | int fd_items; | ||
125 | 138 | |||
126 | 139 | int data[mir_buffer_package_max]; | ||
127 | 140 | int fd[mir_buffer_package_max]; | ||
128 | 141 | |||
129 | 142 | int stride; | ||
130 | 143 | int age; /**< Number of frames submitted by the client since the client has rendered to this buffer. */ | ||
131 | 144 | /**< This has the same semantics as the EGL_EXT_buffer_age extension */ | ||
132 | 145 | /**< \see http://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_buffer_age.txt */ | ||
133 | 146 | } MirBufferPackage; | ||
134 | 147 | 139 | ||
135 | 148 | /** | 140 | /** |
136 | 149 | * Retrieved information about a MirSurface. This is most useful for learning | 141 | * Retrieved information about a MirSurface. This is most useful for learning |
137 | 150 | 142 | ||
138 | === modified file 'include/shared/mir_toolkit/mesa/native_display.h' | |||
139 | --- include/shared/mir_toolkit/mesa/native_display.h 2013-05-02 00:11:18 +0000 | |||
140 | +++ include/shared/mir_toolkit/mesa/native_display.h 2013-05-09 15:25:39 +0000 | |||
141 | @@ -18,6 +18,7 @@ | |||
142 | 18 | #ifndef MIR_TOOLKIT_MESA_NATIVE_DISPLAY_H | 18 | #ifndef MIR_TOOLKIT_MESA_NATIVE_DISPLAY_H |
143 | 19 | #define MIR_TOOLKIT_MESA_NATIVE_DISPLAY_H | 19 | #define MIR_TOOLKIT_MESA_NATIVE_DISPLAY_H |
144 | 20 | 20 | ||
145 | 21 | #include "mir_toolkit/mir_native_buffer.h" | ||
146 | 21 | #include "mir_toolkit/client_types.h" | 22 | #include "mir_toolkit/client_types.h" |
147 | 22 | 23 | ||
148 | 23 | #ifdef __cplusplus | 24 | #ifdef __cplusplus |
149 | 24 | 25 | ||
150 | === added file 'include/shared/mir_toolkit/mir_native_buffer.h' | |||
151 | --- include/shared/mir_toolkit/mir_native_buffer.h 1970-01-01 00:00:00 +0000 | |||
152 | +++ include/shared/mir_toolkit/mir_native_buffer.h 2013-05-09 15:25:39 +0000 | |||
153 | @@ -0,0 +1,44 @@ | |||
154 | 1 | /* | ||
155 | 2 | * Copyright © 2012 Canonical Ltd. | ||
156 | 3 | * | ||
157 | 4 | * This program is free software: you can redistribute it and/or modify it | ||
158 | 5 | * under the terms of the GNU Lesser General Public License version 3, | ||
159 | 6 | * as published by the Free Software Foundation. | ||
160 | 7 | * | ||
161 | 8 | * This program is distributed in the hope that it will be useful, | ||
162 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
163 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
164 | 11 | * GNU Lesser General Public License for more details. | ||
165 | 12 | * | ||
166 | 13 | * You should have received a copy of the GNU Lesser General Public License | ||
167 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
168 | 15 | * | ||
169 | 16 | * Authored by: | ||
170 | 17 | * Kevin DuBois <kevin.dubois@canonical.com> | ||
171 | 18 | */ | ||
172 | 19 | |||
173 | 20 | #ifndef MIR_CLIENT_MIR_NATIVE_BUFFER_H_ | ||
174 | 21 | #define MIR_CLIENT_MIR_NATIVE_BUFFER_H_ | ||
175 | 22 | |||
176 | 23 | enum { mir_buffer_package_max = 32 }; | ||
177 | 24 | typedef struct MirBufferPackage | ||
178 | 25 | { | ||
179 | 26 | int data_items; | ||
180 | 27 | int fd_items; | ||
181 | 28 | |||
182 | 29 | int data[mir_buffer_package_max]; | ||
183 | 30 | int fd[mir_buffer_package_max]; | ||
184 | 31 | |||
185 | 32 | int stride; | ||
186 | 33 | int age; /**< Number of frames submitted by the client since the client has rendered to this buffer. */ | ||
187 | 34 | /**< This has the same semantics as the EGL_EXT_buffer_age extension */ | ||
188 | 35 | /**< \see http://www.khronos.org/registry/egl/extensions/EXT/EGL_EXT_buffer_age.txt */ | ||
189 | 36 | } MirBufferPackage; | ||
190 | 37 | |||
191 | 38 | #ifdef ANDROID | ||
192 | 39 | struct ANativeWindowBuffer; | ||
193 | 40 | typedef struct ANativeWindowBuffer MirNativeBuffer; | ||
194 | 41 | #else | ||
195 | 42 | typedef struct MirBufferPackage MirNativeBuffer; | ||
196 | 43 | #endif | ||
197 | 44 | #endif /* MIR_CLIENT_MIR_NATIVE_BUFFER_H_ */ | ||
198 | 0 | 45 | ||
199 | === modified file 'include/test/mir_test_doubles/mock_alloc_adaptor.h' | |||
200 | --- include/test/mir_test_doubles/mock_alloc_adaptor.h 2013-04-24 05:22:20 +0000 | |||
201 | +++ include/test/mir_test_doubles/mock_alloc_adaptor.h 2013-05-09 15:25:39 +0000 | |||
202 | @@ -20,7 +20,6 @@ | |||
203 | 20 | #define MIR_TEST_DOUBLES_MOCK_ALLOC_ADAPTOR_H_ | 20 | #define MIR_TEST_DOUBLES_MOCK_ALLOC_ADAPTOR_H_ |
204 | 21 | 21 | ||
205 | 22 | #include "src/server/graphics/android/graphic_alloc_adaptor.h" | 22 | #include "src/server/graphics/android/graphic_alloc_adaptor.h" |
206 | 23 | #include "src/server/graphics/android/android_buffer.h" | ||
207 | 24 | 23 | ||
208 | 25 | #include <system/window.h> | 24 | #include <system/window.h> |
209 | 26 | #include <gmock/gmock.h> | 25 | #include <gmock/gmock.h> |
210 | 27 | 26 | ||
211 | === removed file 'include/test/mir_test_doubles/mock_android_buffer.h' | |||
212 | --- include/test/mir_test_doubles/mock_android_buffer.h 2013-04-24 05:22:20 +0000 | |||
213 | +++ include/test/mir_test_doubles/mock_android_buffer.h 1970-01-01 00:00:00 +0000 | |||
214 | @@ -1,57 +0,0 @@ | |||
215 | 1 | /* | ||
216 | 2 | * Copyright © 2012 Canonical Ltd. | ||
217 | 3 | * | ||
218 | 4 | * This program is free software: you can redistribute it and/or modify it | ||
219 | 5 | * under the terms of the GNU General Public License version 3, | ||
220 | 6 | * as published by the Free Software Foundation. | ||
221 | 7 | * | ||
222 | 8 | * This program is distributed in the hope that it will be useful, | ||
223 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
224 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
225 | 11 | * GNU General Public License for more details. | ||
226 | 12 | * | ||
227 | 13 | * You should have received a copy of the GNU General Public License | ||
228 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
229 | 15 | * | ||
230 | 16 | * Authored by: Thomas Voss <thomas.voss@canonical.com> | ||
231 | 17 | */ | ||
232 | 18 | |||
233 | 19 | #ifndef MIR_TEST_DOUBLES_MOCK_ANDROID_BUFFER_H_ | ||
234 | 20 | #define MIR_TEST_DOUBLES_MOCK_ANDROID_BUFFER_H_ | ||
235 | 21 | |||
236 | 22 | #include "src/server/graphics/android/android_buffer.h" | ||
237 | 23 | #include <gmock/gmock.h> | ||
238 | 24 | #include <gtest/gtest.h> | ||
239 | 25 | |||
240 | 26 | namespace mir | ||
241 | 27 | { | ||
242 | 28 | namespace test | ||
243 | 29 | { | ||
244 | 30 | namespace doubles | ||
245 | 31 | { | ||
246 | 32 | |||
247 | 33 | struct MockAndroidBuffer : public mir::graphics::android::AndroidBuffer | ||
248 | 34 | { | ||
249 | 35 | public: | ||
250 | 36 | MockAndroidBuffer() | ||
251 | 37 | { | ||
252 | 38 | using namespace testing; | ||
253 | 39 | ON_CALL(*this, native_buffer_handle()) | ||
254 | 40 | .WillByDefault(Return(std::make_shared<ANativeWindowBuffer>())); | ||
255 | 41 | } | ||
256 | 42 | |||
257 | 43 | MOCK_CONST_METHOD0(size, geometry::Size()); | ||
258 | 44 | MOCK_CONST_METHOD0(stride, geometry::Stride()); | ||
259 | 45 | MOCK_CONST_METHOD0(pixel_format, geometry::PixelFormat()); | ||
260 | 46 | MOCK_CONST_METHOD0(get_ipc_package, std::shared_ptr<compositor::BufferIPCPackage>()); | ||
261 | 47 | |||
262 | 48 | MOCK_METHOD0(bind_to_texture, void()); | ||
263 | 49 | MOCK_CONST_METHOD0(id, compositor::BufferID()); | ||
264 | 50 | MOCK_CONST_METHOD0(native_buffer_handle, std::shared_ptr<ANativeWindowBuffer>()); | ||
265 | 51 | }; | ||
266 | 52 | |||
267 | 53 | } | ||
268 | 54 | } | ||
269 | 55 | } | ||
270 | 56 | |||
271 | 57 | #endif // MIR_TEST_DOUBLES_MOCK_ANDROID_BUFFER_H_ | ||
272 | 58 | 0 | ||
273 | === modified file 'include/test/mir_test_doubles/mock_buffer.h' | |||
274 | --- include/test/mir_test_doubles/mock_buffer.h 2013-04-24 05:22:20 +0000 | |||
275 | +++ include/test/mir_test_doubles/mock_buffer.h 2013-05-09 15:25:39 +0000 | |||
276 | @@ -59,12 +59,15 @@ | |||
277 | 59 | .WillByDefault(Return(empty_package)); | 59 | .WillByDefault(Return(empty_package)); |
278 | 60 | ON_CALL(*this, id()) | 60 | ON_CALL(*this, id()) |
279 | 61 | .WillByDefault(Return(compositor::BufferID{4})); | 61 | .WillByDefault(Return(compositor::BufferID{4})); |
280 | 62 | ON_CALL(*this, native_buffer_handle()) | ||
281 | 63 | .WillByDefault(Return(std::shared_ptr<MirNativeBuffer>())); | ||
282 | 62 | } | 64 | } |
283 | 63 | 65 | ||
284 | 64 | MOCK_CONST_METHOD0(size, geometry::Size()); | 66 | MOCK_CONST_METHOD0(size, geometry::Size()); |
285 | 65 | MOCK_CONST_METHOD0(stride, geometry::Stride()); | 67 | MOCK_CONST_METHOD0(stride, geometry::Stride()); |
286 | 66 | MOCK_CONST_METHOD0(pixel_format, geometry::PixelFormat()); | 68 | MOCK_CONST_METHOD0(pixel_format, geometry::PixelFormat()); |
287 | 67 | MOCK_CONST_METHOD0(get_ipc_package, std::shared_ptr<compositor::BufferIPCPackage>()); | 69 | MOCK_CONST_METHOD0(get_ipc_package, std::shared_ptr<compositor::BufferIPCPackage>()); |
288 | 70 | MOCK_CONST_METHOD0(native_buffer_handle, std::shared_ptr<MirNativeBuffer>()); | ||
289 | 68 | 71 | ||
290 | 69 | MOCK_METHOD0(bind_to_texture, void()); | 72 | MOCK_METHOD0(bind_to_texture, void()); |
291 | 70 | MOCK_CONST_METHOD0(id, compositor::BufferID()); | 73 | MOCK_CONST_METHOD0(id, compositor::BufferID()); |
292 | 71 | 74 | ||
293 | === modified file 'include/test/mir_test_doubles/mock_display_support_provider.h' | |||
294 | --- include/test/mir_test_doubles/mock_display_support_provider.h 2013-04-24 05:22:20 +0000 | |||
295 | +++ include/test/mir_test_doubles/mock_display_support_provider.h 2013-05-09 15:25:39 +0000 | |||
296 | @@ -35,7 +35,7 @@ | |||
297 | 35 | MOCK_CONST_METHOD0(display_size, geometry::Size()); | 35 | MOCK_CONST_METHOD0(display_size, geometry::Size()); |
298 | 36 | MOCK_CONST_METHOD0(display_format, geometry::PixelFormat()); | 36 | MOCK_CONST_METHOD0(display_format, geometry::PixelFormat()); |
299 | 37 | MOCK_CONST_METHOD0(number_of_framebuffers_available, unsigned int()); | 37 | MOCK_CONST_METHOD0(number_of_framebuffers_available, unsigned int()); |
301 | 38 | MOCK_METHOD1(set_next_frontbuffer, void(std::shared_ptr<mir::graphics::android::AndroidBuffer> const&)); | 38 | MOCK_METHOD1(set_next_frontbuffer, void(std::shared_ptr<mir::compositor::Buffer> const&)); |
302 | 39 | }; | 39 | }; |
303 | 40 | } | 40 | } |
304 | 41 | } | 41 | } |
305 | 42 | 42 | ||
306 | === modified file 'include/test/mir_test_doubles/mock_hwc_interface.h' | |||
307 | --- include/test/mir_test_doubles/mock_hwc_interface.h 2013-04-24 05:22:20 +0000 | |||
308 | +++ include/test/mir_test_doubles/mock_hwc_interface.h 2013-05-09 15:25:39 +0000 | |||
309 | @@ -39,7 +39,7 @@ | |||
310 | 39 | MOCK_CONST_METHOD0(display_size, geometry::Size()); | 39 | MOCK_CONST_METHOD0(display_size, geometry::Size()); |
311 | 40 | MOCK_CONST_METHOD0(display_format, geometry::PixelFormat()); | 40 | MOCK_CONST_METHOD0(display_format, geometry::PixelFormat()); |
312 | 41 | MOCK_CONST_METHOD0(number_of_framebuffers_available, unsigned int()); | 41 | MOCK_CONST_METHOD0(number_of_framebuffers_available, unsigned int()); |
314 | 42 | MOCK_METHOD1(set_next_frontbuffer, void(std::shared_ptr<mir::graphics::android::AndroidBuffer> const&)); | 42 | MOCK_METHOD1(set_next_frontbuffer, void(std::shared_ptr<mir::compositor::Buffer> const&)); |
315 | 43 | }; | 43 | }; |
316 | 44 | 44 | ||
317 | 45 | } | 45 | } |
318 | 46 | 46 | ||
319 | === modified file 'include/test/mir_test_doubles/mock_hwc_organizer.h' | |||
320 | --- include/test/mir_test_doubles/mock_hwc_organizer.h 2013-04-23 15:21:23 +0000 | |||
321 | +++ include/test/mir_test_doubles/mock_hwc_organizer.h 2013-05-09 15:25:39 +0000 | |||
322 | @@ -34,7 +34,7 @@ | |||
323 | 34 | { | 34 | { |
324 | 35 | ~MockHWCOrganizer() noexcept {} | 35 | ~MockHWCOrganizer() noexcept {} |
325 | 36 | MOCK_CONST_METHOD0(native_list, graphics::android::LayerList const&()); | 36 | MOCK_CONST_METHOD0(native_list, graphics::android::LayerList const&()); |
327 | 37 | MOCK_METHOD1(set_fb_target, void(std::shared_ptr<graphics::android::AndroidBuffer> const&)); | 37 | MOCK_METHOD1(set_fb_target, void(std::shared_ptr<compositor::Buffer> const&)); |
328 | 38 | }; | 38 | }; |
329 | 39 | 39 | ||
330 | 40 | } | 40 | } |
331 | 41 | 41 | ||
332 | === modified file 'include/test/mir_test_doubles/stub_buffer.h' | |||
333 | --- include/test/mir_test_doubles/stub_buffer.h 2013-04-24 05:22:20 +0000 | |||
334 | +++ include/test/mir_test_doubles/stub_buffer.h 2013-05-09 15:25:39 +0000 | |||
335 | @@ -53,8 +53,15 @@ | |||
336 | 53 | 53 | ||
337 | 54 | virtual geometry::PixelFormat pixel_format() const { return buf_pixel_format; } | 54 | virtual geometry::PixelFormat pixel_format() const { return buf_pixel_format; } |
338 | 55 | 55 | ||
340 | 56 | virtual std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const { return std::make_shared<compositor::BufferIPCPackage>(); } | 56 | virtual std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const |
341 | 57 | { | ||
342 | 58 | return std::make_shared<compositor::BufferIPCPackage>(); | ||
343 | 59 | } | ||
344 | 57 | 60 | ||
345 | 61 | virtual std::shared_ptr<MirNativeBuffer> native_buffer_handle() const | ||
346 | 62 | { | ||
347 | 63 | return std::shared_ptr<MirNativeBuffer>(); | ||
348 | 64 | } | ||
349 | 58 | virtual void bind_to_texture() {} | 65 | virtual void bind_to_texture() {} |
350 | 59 | 66 | ||
351 | 60 | geometry::Size const buf_size; | 67 | geometry::Size const buf_size; |
352 | 61 | 68 | ||
353 | === modified file 'src/client/aging_buffer.h' | |||
354 | --- src/client/aging_buffer.h 2013-04-24 05:22:20 +0000 | |||
355 | +++ src/client/aging_buffer.h 2013-05-09 15:25:39 +0000 | |||
356 | @@ -30,6 +30,8 @@ | |||
357 | 30 | { | 30 | { |
358 | 31 | public: | 31 | public: |
359 | 32 | AgingBuffer(); | 32 | AgingBuffer(); |
360 | 33 | ~AgingBuffer() noexcept {}; | ||
361 | 34 | |||
362 | 33 | virtual uint32_t age() const; | 35 | virtual uint32_t age() const; |
363 | 34 | virtual void increment_age(); | 36 | virtual void increment_age(); |
364 | 35 | virtual void mark_as_submitted(); | 37 | virtual void mark_as_submitted(); |
365 | 36 | 38 | ||
366 | === modified file 'src/client/android/android_client_buffer.cpp' | |||
367 | --- src/client/android/android_client_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
368 | +++ src/client/android/android_client_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
369 | @@ -30,7 +30,8 @@ | |||
370 | 30 | : creation_package(package), | 30 | : creation_package(package), |
371 | 31 | buffer_registrar(registrar), | 31 | buffer_registrar(registrar), |
372 | 32 | rect({{geom::X(0),geom::Y(0)}, size}), | 32 | rect({{geom::X(0),geom::Y(0)}, size}), |
374 | 33 | buffer_pf(pf) | 33 | buffer_pf(pf), |
375 | 34 | native_window_buffer(std::make_shared<ANativeWindowBuffer>()) | ||
376 | 34 | { | 35 | { |
377 | 35 | creation_package = std::move(package); | 36 | creation_package = std::move(package); |
378 | 36 | native_handle = std::shared_ptr<const native_handle_t> (convert_to_native_handle(creation_package)); | 37 | native_handle = std::shared_ptr<const native_handle_t> (convert_to_native_handle(creation_package)); |
379 | @@ -45,17 +46,17 @@ | |||
380 | 45 | } | 46 | } |
381 | 46 | void mcla::AndroidClientBuffer::pack_native_window_buffer() | 47 | void mcla::AndroidClientBuffer::pack_native_window_buffer() |
382 | 47 | { | 48 | { |
387 | 48 | native_window_buffer.height = static_cast<int32_t>(rect.size.height.as_uint32_t()); | 49 | native_window_buffer->height = static_cast<int32_t>(rect.size.height.as_uint32_t()); |
388 | 49 | native_window_buffer.width = static_cast<int32_t>(rect.size.width.as_uint32_t()); | 50 | native_window_buffer->width = static_cast<int32_t>(rect.size.width.as_uint32_t()); |
389 | 50 | native_window_buffer.stride = creation_package->stride; | 51 | native_window_buffer->stride = creation_package->stride; |
390 | 51 | native_window_buffer.usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER; | 52 | native_window_buffer->usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER; |
391 | 52 | 53 | ||
395 | 53 | native_window_buffer.handle = native_handle.get(); | 54 | native_window_buffer->handle = native_handle.get(); |
396 | 54 | native_window_buffer.common.incRef = &incRef; | 55 | native_window_buffer->common.incRef = &incRef; |
397 | 55 | native_window_buffer.common.decRef = &incRef; | 56 | native_window_buffer->common.decRef = &incRef; |
398 | 56 | } | 57 | } |
399 | 57 | 58 | ||
401 | 58 | mcla::AndroidClientBuffer::~AndroidClientBuffer() | 59 | mcla::AndroidClientBuffer::~AndroidClientBuffer() noexcept |
402 | 59 | { | 60 | { |
403 | 60 | buffer_registrar->unregister_buffer(native_handle.get()); | 61 | buffer_registrar->unregister_buffer(native_handle.get()); |
404 | 61 | } | 62 | } |
405 | @@ -112,12 +113,7 @@ | |||
406 | 112 | return buffer_pf; | 113 | return buffer_pf; |
407 | 113 | } | 114 | } |
408 | 114 | 115 | ||
417 | 115 | MirNativeBuffer mcla::AndroidClientBuffer::get_native_handle() | 116 | std::shared_ptr<ANativeWindowBuffer> mcla::AndroidClientBuffer::native_buffer_handle() const |
418 | 116 | { | 117 | { |
419 | 117 | return &native_window_buffer; | 118 | return native_window_buffer; |
412 | 118 | } | ||
413 | 119 | |||
414 | 120 | std::shared_ptr<MirBufferPackage> mcla::AndroidClientBuffer::get_buffer_package() const | ||
415 | 121 | { | ||
416 | 122 | return creation_package; | ||
420 | 123 | } | 119 | } |
421 | 124 | 120 | ||
422 | === modified file 'src/client/android/android_client_buffer.h' | |||
423 | --- src/client/android/android_client_buffer.h 2013-04-24 05:22:20 +0000 | |||
424 | +++ src/client/android/android_client_buffer.h 2013-05-09 15:25:39 +0000 | |||
425 | @@ -40,14 +40,13 @@ | |||
426 | 40 | AndroidClientBuffer(std::shared_ptr<AndroidRegistrar> const&, | 40 | AndroidClientBuffer(std::shared_ptr<AndroidRegistrar> const&, |
427 | 41 | std::shared_ptr<MirBufferPackage> const&, | 41 | std::shared_ptr<MirBufferPackage> const&, |
428 | 42 | geometry::Size size, geometry::PixelFormat pf); | 42 | geometry::Size size, geometry::PixelFormat pf); |
430 | 43 | ~AndroidClientBuffer(); | 43 | ~AndroidClientBuffer() noexcept; |
431 | 44 | 44 | ||
432 | 45 | std::shared_ptr<MemoryRegion> secure_for_cpu_write(); | 45 | std::shared_ptr<MemoryRegion> secure_for_cpu_write(); |
433 | 46 | geometry::Size size() const; | 46 | geometry::Size size() const; |
434 | 47 | geometry::Stride stride() const; | 47 | geometry::Stride stride() const; |
435 | 48 | geometry::PixelFormat pixel_format() const; | 48 | geometry::PixelFormat pixel_format() const; |
438 | 49 | MirNativeBuffer get_native_handle(); | 49 | std::shared_ptr<ANativeWindowBuffer> native_buffer_handle() const; |
437 | 50 | std::shared_ptr<MirBufferPackage> get_buffer_package() const; | ||
439 | 51 | 50 | ||
440 | 52 | AndroidClientBuffer(const AndroidClientBuffer&) = delete; | 51 | AndroidClientBuffer(const AndroidClientBuffer&) = delete; |
441 | 53 | AndroidClientBuffer& operator=(const AndroidClientBuffer&) = delete; | 52 | AndroidClientBuffer& operator=(const AndroidClientBuffer&) = delete; |
442 | @@ -62,7 +61,7 @@ | |||
443 | 62 | const geometry::Rectangle rect; | 61 | const geometry::Rectangle rect; |
444 | 63 | const geometry::PixelFormat buffer_pf; | 62 | const geometry::PixelFormat buffer_pf; |
445 | 64 | 63 | ||
447 | 65 | ANativeWindowBuffer native_window_buffer; | 64 | std::shared_ptr<ANativeWindowBuffer> native_window_buffer; |
448 | 66 | }; | 65 | }; |
449 | 67 | 66 | ||
450 | 68 | } | 67 | } |
451 | 69 | 68 | ||
452 | === modified file 'src/client/android/android_client_platform.cpp' | |||
453 | --- src/client/android/android_client_platform.cpp 2013-04-24 05:22:20 +0000 | |||
454 | +++ src/client/android/android_client_platform.cpp 2013-05-09 15:25:39 +0000 | |||
455 | @@ -102,3 +102,8 @@ | |||
456 | 102 | *native_display = EGL_DEFAULT_DISPLAY; | 102 | *native_display = EGL_DEFAULT_DISPLAY; |
457 | 103 | return native_display; | 103 | return native_display; |
458 | 104 | } | 104 | } |
459 | 105 | |||
460 | 106 | MirPlatformType mcla::AndroidClientPlatform::platform_type() const | ||
461 | 107 | { | ||
462 | 108 | return mir_platform_type_android; | ||
463 | 109 | } | ||
464 | 105 | 110 | ||
465 | === modified file 'src/client/android/android_client_platform.h' | |||
466 | --- src/client/android/android_client_platform.h 2013-04-24 05:22:20 +0000 | |||
467 | +++ src/client/android/android_client_platform.h 2013-05-09 15:25:39 +0000 | |||
468 | @@ -32,6 +32,7 @@ | |||
469 | 32 | class AndroidClientPlatform : public ClientPlatform | 32 | class AndroidClientPlatform : public ClientPlatform |
470 | 33 | { | 33 | { |
471 | 34 | public: | 34 | public: |
472 | 35 | MirPlatformType platform_type() const; | ||
473 | 35 | std::shared_ptr<ClientBufferFactory> create_buffer_factory(); | 36 | std::shared_ptr<ClientBufferFactory> create_buffer_factory(); |
474 | 36 | std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface); | 37 | std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface); |
475 | 37 | std::shared_ptr<EGLNativeDisplayType> create_egl_native_display(); | 38 | std::shared_ptr<EGLNativeDisplayType> create_egl_native_display(); |
476 | 38 | 39 | ||
477 | === modified file 'src/client/android/client_surface_interpreter.cpp' | |||
478 | --- src/client/android/client_surface_interpreter.cpp 2013-04-24 05:22:20 +0000 | |||
479 | +++ src/client/android/client_surface_interpreter.cpp 2013-05-09 15:25:39 +0000 | |||
480 | @@ -29,18 +29,18 @@ | |||
481 | 29 | { | 29 | { |
482 | 30 | } | 30 | } |
483 | 31 | 31 | ||
485 | 32 | ANativeWindowBuffer* mcla::ClientSurfaceInterpreter::driver_requests_buffer() | 32 | MirNativeBuffer* mcla::ClientSurfaceInterpreter::driver_requests_buffer() |
486 | 33 | { | 33 | { |
487 | 34 | auto buffer = surface.get_current_buffer(); | 34 | auto buffer = surface.get_current_buffer(); |
489 | 35 | auto buffer_to_driver = buffer->get_native_handle(); | 35 | auto buffer_to_driver = buffer->native_buffer_handle(); |
490 | 36 | buffer_to_driver->format = driver_pixel_format; | 36 | buffer_to_driver->format = driver_pixel_format; |
491 | 37 | 37 | ||
493 | 38 | return buffer_to_driver; | 38 | return buffer_to_driver.get(); |
494 | 39 | } | 39 | } |
495 | 40 | 40 | ||
496 | 41 | static void empty(MirSurface * /*surface*/, void * /*client_context*/) | 41 | static void empty(MirSurface * /*surface*/, void * /*client_context*/) |
497 | 42 | {} | 42 | {} |
499 | 43 | void mcla::ClientSurfaceInterpreter::driver_returns_buffer(ANativeWindowBuffer*, std::shared_ptr<mga::SyncObject> const& sync_fence) | 43 | void mcla::ClientSurfaceInterpreter::driver_returns_buffer(MirNativeBuffer*, std::shared_ptr<mga::SyncObject> const& sync_fence) |
500 | 44 | { | 44 | { |
501 | 45 | sync_fence->wait(); | 45 | sync_fence->wait(); |
502 | 46 | mir_wait_for(surface.next_buffer(empty, NULL)); | 46 | mir_wait_for(surface.next_buffer(empty, NULL)); |
503 | 47 | 47 | ||
504 | === modified file 'src/client/android/client_surface_interpreter.h' | |||
505 | --- src/client/android/client_surface_interpreter.h 2013-04-24 05:22:20 +0000 | |||
506 | +++ src/client/android/client_surface_interpreter.h 2013-05-09 15:25:39 +0000 | |||
507 | @@ -34,8 +34,8 @@ | |||
508 | 34 | public: | 34 | public: |
509 | 35 | explicit ClientSurfaceInterpreter(ClientSurface& surface); | 35 | explicit ClientSurfaceInterpreter(ClientSurface& surface); |
510 | 36 | 36 | ||
513 | 37 | ANativeWindowBuffer* driver_requests_buffer(); | 37 | MirNativeBuffer* driver_requests_buffer(); |
514 | 38 | void driver_returns_buffer(ANativeWindowBuffer*, std::shared_ptr<graphics::android::SyncObject> const&); | 38 | void driver_returns_buffer(MirNativeBuffer*, std::shared_ptr<graphics::android::SyncObject> const&); |
515 | 39 | void dispatch_driver_request_format(int format); | 39 | void dispatch_driver_request_format(int format); |
516 | 40 | int driver_requests_info(int key) const; | 40 | int driver_requests_info(int key) const; |
517 | 41 | private: | 41 | private: |
518 | 42 | 42 | ||
519 | === modified file 'src/client/client_buffer.h' | |||
520 | --- src/client/client_buffer.h 2013-04-24 05:22:20 +0000 | |||
521 | +++ src/client/client_buffer.h 2013-05-09 15:25:39 +0000 | |||
522 | @@ -20,7 +20,8 @@ | |||
523 | 20 | #ifndef MIR_CLIENT_CLIENT_BUFFER_H_ | 20 | #ifndef MIR_CLIENT_CLIENT_BUFFER_H_ |
524 | 21 | #define MIR_CLIENT_CLIENT_BUFFER_H_ | 21 | #define MIR_CLIENT_CLIENT_BUFFER_H_ |
525 | 22 | 22 | ||
527 | 23 | #include "mir_native_buffer.h" | 23 | #include "mir_toolkit/mir_native_buffer.h" |
528 | 24 | #include "mir_toolkit/common.h" | ||
529 | 24 | #include "mir/geometry/pixel_format.h" | 25 | #include "mir/geometry/pixel_format.h" |
530 | 25 | #include "mir/geometry/size.h" | 26 | #include "mir/geometry/size.h" |
531 | 26 | 27 | ||
532 | @@ -51,6 +52,7 @@ | |||
533 | 51 | class ClientBuffer | 52 | class ClientBuffer |
534 | 52 | { | 53 | { |
535 | 53 | public: | 54 | public: |
536 | 55 | virtual ~ClientBuffer() = default; | ||
537 | 54 | virtual std::shared_ptr<MemoryRegion> secure_for_cpu_write() = 0; | 56 | virtual std::shared_ptr<MemoryRegion> secure_for_cpu_write() = 0; |
538 | 55 | virtual geometry::Size size() const = 0; | 57 | virtual geometry::Size size() const = 0; |
539 | 56 | virtual geometry::Stride stride() const = 0; | 58 | virtual geometry::Stride stride() const = 0; |
540 | @@ -58,9 +60,7 @@ | |||
541 | 58 | virtual uint32_t age() const = 0; | 60 | virtual uint32_t age() const = 0; |
542 | 59 | virtual void increment_age() = 0; | 61 | virtual void increment_age() = 0; |
543 | 60 | virtual void mark_as_submitted() = 0; | 62 | virtual void mark_as_submitted() = 0; |
547 | 61 | 63 | virtual std::shared_ptr<MirNativeBuffer> native_buffer_handle() const = 0; | |
545 | 62 | virtual MirNativeBuffer get_native_handle() = 0; | ||
546 | 63 | virtual std::shared_ptr<MirBufferPackage> get_buffer_package() const = 0; | ||
548 | 64 | }; | 64 | }; |
549 | 65 | 65 | ||
550 | 66 | } | 66 | } |
551 | 67 | 67 | ||
552 | === modified file 'src/client/client_platform.h' | |||
553 | --- src/client/client_platform.h 2013-04-24 05:22:20 +0000 | |||
554 | +++ src/client/client_platform.h 2013-05-09 15:25:39 +0000 | |||
555 | @@ -18,6 +18,8 @@ | |||
556 | 18 | #ifndef MIR_CLIENT_CLIENT_PLATFORM_H_ | 18 | #ifndef MIR_CLIENT_CLIENT_PLATFORM_H_ |
557 | 19 | #define MIR_CLIENT_CLIENT_PLATFORM_H_ | 19 | #define MIR_CLIENT_CLIENT_PLATFORM_H_ |
558 | 20 | 20 | ||
559 | 21 | #include "mir_toolkit/client_types.h" | ||
560 | 22 | |||
561 | 21 | #include <EGL/eglplatform.h> | 23 | #include <EGL/eglplatform.h> |
562 | 22 | #include <memory> | 24 | #include <memory> |
563 | 23 | 25 | ||
564 | @@ -36,6 +38,7 @@ | |||
565 | 36 | ClientPlatform(const ClientPlatform& p) = delete; | 38 | ClientPlatform(const ClientPlatform& p) = delete; |
566 | 37 | ClientPlatform& operator=(const ClientPlatform& p) = delete; | 39 | ClientPlatform& operator=(const ClientPlatform& p) = delete; |
567 | 38 | 40 | ||
568 | 41 | virtual MirPlatformType platform_type() const = 0; | ||
569 | 39 | virtual std::shared_ptr<ClientBufferFactory> create_buffer_factory() = 0; | 42 | virtual std::shared_ptr<ClientBufferFactory> create_buffer_factory() = 0; |
570 | 40 | virtual std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface) = 0; | 43 | virtual std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface) = 0; |
571 | 41 | virtual std::shared_ptr<EGLNativeDisplayType> create_egl_native_display() = 0; | 44 | virtual std::shared_ptr<EGLNativeDisplayType> create_egl_native_display() = 0; |
572 | 42 | 45 | ||
573 | === modified file 'src/client/gbm/gbm_client_buffer.cpp' | |||
574 | --- src/client/gbm/gbm_client_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
575 | +++ src/client/gbm/gbm_client_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
576 | @@ -133,7 +133,7 @@ | |||
577 | 133 | { | 133 | { |
578 | 134 | } | 134 | } |
579 | 135 | 135 | ||
581 | 136 | mclg::GBMClientBuffer::~GBMClientBuffer() | 136 | mclg::GBMClientBuffer::~GBMClientBuffer() noexcept |
582 | 137 | { | 137 | { |
583 | 138 | // TODO (@raof): Error reporting? It should not be possible for this to fail; if it does, | 138 | // TODO (@raof): Error reporting? It should not be possible for this to fail; if it does, |
584 | 139 | // something's seriously wrong. | 139 | // something's seriously wrong. |
585 | @@ -166,13 +166,8 @@ | |||
586 | 166 | return buffer_pf; | 166 | return buffer_pf; |
587 | 167 | } | 167 | } |
588 | 168 | 168 | ||
590 | 169 | std::shared_ptr<MirBufferPackage> mclg::GBMClientBuffer::get_buffer_package() const | 169 | std::shared_ptr<MirNativeBuffer> mclg::GBMClientBuffer::native_buffer_handle() const |
591 | 170 | { | 170 | { |
592 | 171 | creation_package->age = age(); | 171 | creation_package->age = age(); |
593 | 172 | return creation_package; | 172 | return creation_package; |
594 | 173 | } | 173 | } |
595 | 174 | |||
596 | 175 | MirNativeBuffer mclg::GBMClientBuffer::get_native_handle() | ||
597 | 176 | { | ||
598 | 177 | return NULL; | ||
599 | 178 | } | ||
600 | 179 | 174 | ||
601 | === modified file 'src/client/gbm/gbm_client_buffer.h' | |||
602 | --- src/client/gbm/gbm_client_buffer.h 2013-04-24 05:22:20 +0000 | |||
603 | +++ src/client/gbm/gbm_client_buffer.h 2013-05-09 15:25:39 +0000 | |||
604 | @@ -43,14 +43,13 @@ | |||
605 | 43 | geometry::Size size, | 43 | geometry::Size size, |
606 | 44 | geometry::PixelFormat pf); | 44 | geometry::PixelFormat pf); |
607 | 45 | 45 | ||
609 | 46 | virtual ~GBMClientBuffer(); | 46 | virtual ~GBMClientBuffer() noexcept; |
610 | 47 | 47 | ||
611 | 48 | std::shared_ptr<MemoryRegion> secure_for_cpu_write(); | 48 | std::shared_ptr<MemoryRegion> secure_for_cpu_write(); |
612 | 49 | geometry::Size size() const; | 49 | geometry::Size size() const; |
613 | 50 | geometry::Stride stride() const; | 50 | geometry::Stride stride() const; |
614 | 51 | geometry::PixelFormat pixel_format() const; | 51 | geometry::PixelFormat pixel_format() const; |
617 | 52 | std::shared_ptr<MirBufferPackage> get_buffer_package() const; | 52 | std::shared_ptr<MirNativeBuffer> native_buffer_handle() const; |
616 | 53 | MirNativeBuffer get_native_handle(); | ||
618 | 54 | 53 | ||
619 | 55 | GBMClientBuffer(const GBMClientBuffer&) = delete; | 54 | GBMClientBuffer(const GBMClientBuffer&) = delete; |
620 | 56 | GBMClientBuffer& operator=(const GBMClientBuffer&) = delete; | 55 | GBMClientBuffer& operator=(const GBMClientBuffer&) = delete; |
621 | 57 | 56 | ||
622 | === modified file 'src/client/gbm/gbm_client_platform.cpp' | |||
623 | --- src/client/gbm/gbm_client_platform.cpp 2013-04-24 05:22:20 +0000 | |||
624 | +++ src/client/gbm/gbm_client_platform.cpp 2013-05-09 15:25:39 +0000 | |||
625 | @@ -144,3 +144,8 @@ | |||
626 | 144 | 144 | ||
627 | 145 | return std::shared_ptr<EGLNativeDisplayType>(egl_native_display, NativeDisplayDeleter(display_container)); | 145 | return std::shared_ptr<EGLNativeDisplayType>(egl_native_display, NativeDisplayDeleter(display_container)); |
628 | 146 | } | 146 | } |
629 | 147 | |||
630 | 148 | MirPlatformType mclg::GBMClientPlatform::platform_type() const | ||
631 | 149 | { | ||
632 | 150 | return mir_platform_type_gbm; | ||
633 | 151 | } | ||
634 | 147 | 152 | ||
635 | === modified file 'src/client/gbm/gbm_client_platform.h' | |||
636 | --- src/client/gbm/gbm_client_platform.h 2013-04-24 05:22:20 +0000 | |||
637 | +++ src/client/gbm/gbm_client_platform.h 2013-05-09 15:25:39 +0000 | |||
638 | @@ -39,6 +39,7 @@ | |||
639 | 39 | std::shared_ptr<DRMFDHandler> const& drm_fd_handler, | 39 | std::shared_ptr<DRMFDHandler> const& drm_fd_handler, |
640 | 40 | EGLNativeDisplayContainer& display_container); | 40 | EGLNativeDisplayContainer& display_container); |
641 | 41 | 41 | ||
642 | 42 | MirPlatformType platform_type() const; | ||
643 | 42 | std::shared_ptr<ClientBufferFactory> create_buffer_factory(); | 43 | std::shared_ptr<ClientBufferFactory> create_buffer_factory(); |
644 | 43 | std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface); | 44 | std::shared_ptr<EGLNativeWindowType> create_egl_native_window(ClientSurface *surface); |
645 | 44 | std::shared_ptr<EGLNativeDisplayType> create_egl_native_display(); | 45 | std::shared_ptr<EGLNativeDisplayType> create_egl_native_display(); |
646 | 45 | 46 | ||
647 | === modified file 'src/client/gbm/mesa_native_display_container.cpp' | |||
648 | --- src/client/gbm/mesa_native_display_container.cpp 2013-04-24 05:22:20 +0000 | |||
649 | +++ src/client/gbm/mesa_native_display_container.cpp 2013-05-09 15:25:39 +0000 | |||
650 | @@ -21,6 +21,7 @@ | |||
651 | 21 | #include "mir_toolkit/mesa/native_display.h" | 21 | #include "mir_toolkit/mesa/native_display.h" |
652 | 22 | #include "mir_toolkit/mir_client_library.h" | 22 | #include "mir_toolkit/mir_client_library.h" |
653 | 23 | 23 | ||
654 | 24 | #include <cstring> | ||
655 | 24 | #include <unordered_set> | 25 | #include <unordered_set> |
656 | 25 | #include <mutex> | 26 | #include <mutex> |
657 | 26 | 27 | ||
658 | @@ -45,7 +46,9 @@ | |||
659 | 45 | MirBufferPackage* buffer_package) | 46 | MirBufferPackage* buffer_package) |
660 | 46 | { | 47 | { |
661 | 47 | MirSurface* ms = static_cast<MirSurface*>(surface); | 48 | MirSurface* ms = static_cast<MirSurface*>(surface); |
663 | 48 | mir_surface_get_current_buffer(ms, buffer_package); | 49 | MirBufferPackage * current_package; |
664 | 50 | mir_surface_get_current_buffer(ms, ¤t_package); | ||
665 | 51 | memcpy(buffer_package, current_package, sizeof(MirBufferPackage)); | ||
666 | 49 | } | 52 | } |
667 | 50 | 53 | ||
668 | 51 | static void buffer_advanced_callback(MirSurface* /* surface */, | 54 | static void buffer_advanced_callback(MirSurface* /* surface */, |
669 | 52 | 55 | ||
670 | === modified file 'src/client/mir_client_library.cpp' | |||
671 | --- src/client/mir_client_library.cpp 2013-05-02 00:11:18 +0000 | |||
672 | +++ src/client/mir_client_library.cpp 2013-05-09 15:25:39 +0000 | |||
673 | @@ -183,19 +183,15 @@ | |||
674 | 183 | *parameters = surface->get_parameters(); | 183 | *parameters = surface->get_parameters(); |
675 | 184 | } | 184 | } |
676 | 185 | 185 | ||
678 | 186 | void mir_surface_get_current_buffer(MirSurface *surface, MirBufferPackage * buffer_package_out) | 186 | MirPlatformType mir_surface_get_platform_type(MirSurface * surface) |
679 | 187 | { | ||
680 | 188 | return surface->platform_type(); | ||
681 | 189 | } | ||
682 | 190 | |||
683 | 191 | void mir_surface_get_current_buffer(MirSurface * surface, MirNativeBuffer ** buffer_package_out) | ||
684 | 187 | { | 192 | { |
685 | 188 | auto package = surface->get_current_buffer_package(); | 193 | auto package = surface->get_current_buffer_package(); |
696 | 189 | 194 | *buffer_package_out = package.get(); | |
687 | 190 | buffer_package_out->data_items = package->data_items; | ||
688 | 191 | buffer_package_out->fd_items = package->fd_items; | ||
689 | 192 | for(auto i=0; i<mir_buffer_package_max; i++) | ||
690 | 193 | { | ||
691 | 194 | buffer_package_out->data[i] = package->data[i]; | ||
692 | 195 | buffer_package_out->fd[i] = package->fd[i]; | ||
693 | 196 | } | ||
694 | 197 | |||
695 | 198 | buffer_package_out->stride = package->stride; | ||
697 | 199 | } | 195 | } |
698 | 200 | 196 | ||
699 | 201 | void mir_connection_get_platform(MirConnection *connection, MirPlatformPackage *platform_package) | 197 | void mir_connection_get_platform(MirConnection *connection, MirPlatformPackage *platform_package) |
700 | 202 | 198 | ||
701 | === removed file 'src/client/mir_native_buffer.h' | |||
702 | --- src/client/mir_native_buffer.h 2013-04-24 05:22:20 +0000 | |||
703 | +++ src/client/mir_native_buffer.h 1970-01-01 00:00:00 +0000 | |||
704 | @@ -1,30 +0,0 @@ | |||
705 | 1 | /* | ||
706 | 2 | * Copyright © 2012 Canonical Ltd. | ||
707 | 3 | * | ||
708 | 4 | * This program is free software: you can redistribute it and/or modify it | ||
709 | 5 | * under the terms of the GNU Lesser General Public License version 3, | ||
710 | 6 | * as published by the Free Software Foundation. | ||
711 | 7 | * | ||
712 | 8 | * This program is distributed in the hope that it will be useful, | ||
713 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
714 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
715 | 11 | * GNU Lesser General Public License for more details. | ||
716 | 12 | * | ||
717 | 13 | * You should have received a copy of the GNU Lesser General Public License | ||
718 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
719 | 15 | * | ||
720 | 16 | * Authored by: | ||
721 | 17 | * Kevin DuBois <kevin.dubois@canonical.com> | ||
722 | 18 | */ | ||
723 | 19 | |||
724 | 20 | #ifndef MIR_CLIENT_MIR_NATIVE_BUFFER_H_ | ||
725 | 21 | #define MIR_CLIENT_MIR_NATIVE_BUFFER_H_ | ||
726 | 22 | |||
727 | 23 | #ifdef ANDROID | ||
728 | 24 | struct ANativeWindowBuffer; | ||
729 | 25 | typedef ANativeWindowBuffer* MirNativeBuffer; | ||
730 | 26 | #else | ||
731 | 27 | typedef void* MirNativeBuffer; | ||
732 | 28 | #endif | ||
733 | 29 | |||
734 | 30 | #endif /* MIR_CLIENT_MIR_NATIVE_BUFFER_H_ */ | ||
735 | 31 | 0 | ||
736 | === modified file 'src/client/mir_surface.cpp' | |||
737 | --- src/client/mir_surface.cpp 2013-05-01 23:30:06 +0000 | |||
738 | +++ src/client/mir_surface.cpp 2013-05-09 15:25:39 +0000 | |||
739 | @@ -195,10 +195,10 @@ | |||
740 | 195 | return connection->release_surface(this, callback, context); | 195 | return connection->release_surface(this, callback, context); |
741 | 196 | } | 196 | } |
742 | 197 | 197 | ||
744 | 198 | std::shared_ptr<MirBufferPackage> MirSurface::get_current_buffer_package() | 198 | std::shared_ptr<MirNativeBuffer> MirSurface::get_current_buffer_package() |
745 | 199 | { | 199 | { |
748 | 200 | auto buffer = buffer_depository->current_buffer(); | 200 | auto buffer = get_current_buffer(); |
749 | 201 | return buffer->get_buffer_package(); | 201 | return buffer->native_buffer_handle(); |
750 | 202 | } | 202 | } |
751 | 203 | 203 | ||
752 | 204 | std::shared_ptr<mcl::ClientBuffer> MirSurface::get_current_buffer() | 204 | std::shared_ptr<mcl::ClientBuffer> MirSurface::get_current_buffer() |
753 | @@ -321,3 +321,9 @@ | |||
754 | 321 | if (handle_event_callback) | 321 | if (handle_event_callback) |
755 | 322 | handle_event_callback(&e); | 322 | handle_event_callback(&e); |
756 | 323 | } | 323 | } |
757 | 324 | |||
758 | 325 | MirPlatformType MirSurface::platform_type() | ||
759 | 326 | { | ||
760 | 327 | auto platform = connection->get_client_platform(); | ||
761 | 328 | return platform->platform_type(); | ||
762 | 329 | } | ||
763 | 324 | 330 | ||
764 | === modified file 'src/client/mir_surface.h' | |||
765 | --- src/client/mir_surface.h 2013-04-24 05:22:20 +0000 | |||
766 | +++ src/client/mir_surface.h 2013-05-09 15:25:39 +0000 | |||
767 | @@ -24,6 +24,7 @@ | |||
768 | 24 | #include "mir/geometry/dimensions.h" | 24 | #include "mir/geometry/dimensions.h" |
769 | 25 | #include "mir_toolkit/mir_client_library.h" | 25 | #include "mir_toolkit/mir_client_library.h" |
770 | 26 | #include "mir_toolkit/common.h" | 26 | #include "mir_toolkit/common.h" |
771 | 27 | #include "mir_toolkit/mir_native_buffer.h" | ||
772 | 27 | #include "client_buffer_depository.h" | 28 | #include "client_buffer_depository.h" |
773 | 28 | #include "mir_wait_handle.h" | 29 | #include "mir_wait_handle.h" |
774 | 29 | #include "mir_client_surface.h" | 30 | #include "mir_client_surface.h" |
775 | @@ -75,7 +76,8 @@ | |||
776 | 75 | MirWaitHandle* next_buffer(mir_surface_lifecycle_callback callback, void * context); | 76 | MirWaitHandle* next_buffer(mir_surface_lifecycle_callback callback, void * context); |
777 | 76 | MirWaitHandle* get_create_wait_handle(); | 77 | MirWaitHandle* get_create_wait_handle(); |
778 | 77 | 78 | ||
780 | 78 | std::shared_ptr<MirBufferPackage> get_current_buffer_package(); | 79 | std::shared_ptr<MirNativeBuffer> get_current_buffer_package(); |
781 | 80 | MirPlatformType platform_type(); | ||
782 | 79 | std::shared_ptr<mir::client::ClientBuffer> get_current_buffer(); | 81 | std::shared_ptr<mir::client::ClientBuffer> get_current_buffer(); |
783 | 80 | void get_cpu_region(MirGraphicsRegion& region); | 82 | void get_cpu_region(MirGraphicsRegion& region); |
784 | 81 | void release_cpu_region(); | 83 | void release_cpu_region(); |
785 | 82 | 84 | ||
786 | === modified file 'src/server/compositor/temporary_buffers.cpp' | |||
787 | --- src/server/compositor/temporary_buffers.cpp 2013-04-24 05:22:20 +0000 | |||
788 | +++ src/server/compositor/temporary_buffers.cpp 2013-05-09 15:25:39 +0000 | |||
789 | @@ -81,3 +81,7 @@ | |||
790 | 81 | return buffer->get_ipc_package(); | 81 | return buffer->get_ipc_package(); |
791 | 82 | } | 82 | } |
792 | 83 | 83 | ||
793 | 84 | std::shared_ptr<MirNativeBuffer> mc::TemporaryBuffer::native_buffer_handle() const | ||
794 | 85 | { | ||
795 | 86 | return buffer->native_buffer_handle(); | ||
796 | 87 | } | ||
797 | 84 | 88 | ||
798 | === modified file 'src/server/compositor/temporary_buffers.h' | |||
799 | --- src/server/compositor/temporary_buffers.h 2013-04-24 05:22:20 +0000 | |||
800 | +++ src/server/compositor/temporary_buffers.h 2013-05-09 15:25:39 +0000 | |||
801 | @@ -39,6 +39,7 @@ | |||
802 | 39 | BufferID id() const; | 39 | BufferID id() const; |
803 | 40 | void bind_to_texture(); | 40 | void bind_to_texture(); |
804 | 41 | std::shared_ptr<BufferIPCPackage> get_ipc_package() const; | 41 | std::shared_ptr<BufferIPCPackage> get_ipc_package() const; |
805 | 42 | std::shared_ptr<MirNativeBuffer> native_buffer_handle() const; | ||
806 | 42 | 43 | ||
807 | 43 | protected: | 44 | protected: |
808 | 44 | explicit TemporaryBuffer(std::shared_ptr<Buffer> const& real_buffer); | 45 | explicit TemporaryBuffer(std::shared_ptr<Buffer> const& real_buffer); |
809 | 45 | 46 | ||
810 | === removed file 'src/server/graphics/android/android_buffer.h' | |||
811 | --- src/server/graphics/android/android_buffer.h 2013-04-24 05:22:20 +0000 | |||
812 | +++ src/server/graphics/android/android_buffer.h 1970-01-01 00:00:00 +0000 | |||
813 | @@ -1,51 +0,0 @@ | |||
814 | 1 | /* | ||
815 | 2 | * Copyright © 2012,2013 Canonical Ltd. | ||
816 | 3 | * | ||
817 | 4 | * This program is free software: you can redistribute it and/or modify it | ||
818 | 5 | * under the terms of the GNU General Public License version 3, | ||
819 | 6 | * as published by the Free Software Foundation. | ||
820 | 7 | * | ||
821 | 8 | * This program is distributed in the hope that it will be useful, | ||
822 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
823 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
824 | 11 | * GNU General Public License for more details. | ||
825 | 12 | * | ||
826 | 13 | * You should have received a copy of the GNU General Public License | ||
827 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
828 | 15 | * | ||
829 | 16 | * Authored by: | ||
830 | 17 | * Kevin DuBois <kevin.dubois@canonical.com> | ||
831 | 18 | */ | ||
832 | 19 | |||
833 | 20 | #ifndef MIR_GRAPHICS_ANDROID_ANDROID_BUFFER_H_ | ||
834 | 21 | #define MIR_GRAPHICS_ANDROID_ANDROID_BUFFER_H_ | ||
835 | 22 | |||
836 | 23 | #include "mir/compositor/buffer_basic.h" | ||
837 | 24 | |||
838 | 25 | #include <system/window.h> | ||
839 | 26 | #include <memory> | ||
840 | 27 | |||
841 | 28 | namespace mir | ||
842 | 29 | { | ||
843 | 30 | namespace graphics | ||
844 | 31 | { | ||
845 | 32 | namespace android | ||
846 | 33 | { | ||
847 | 34 | |||
848 | 35 | class AndroidBuffer : public compositor::BufferBasic | ||
849 | 36 | { | ||
850 | 37 | public: | ||
851 | 38 | virtual ~AndroidBuffer() = default; | ||
852 | 39 | virtual std::shared_ptr<ANativeWindowBuffer> native_buffer_handle() const = 0; | ||
853 | 40 | protected: | ||
854 | 41 | AndroidBuffer() = default; | ||
855 | 42 | AndroidBuffer(AndroidBuffer const&) = delete; | ||
856 | 43 | AndroidBuffer& operator=(AndroidBuffer const&) = delete; | ||
857 | 44 | |||
858 | 45 | }; | ||
859 | 46 | |||
860 | 47 | } | ||
861 | 48 | } | ||
862 | 49 | } | ||
863 | 50 | |||
864 | 51 | #endif /* MIR_GRAPHICS_ANDROID_ANDROID_BUFFER_H_ */ | ||
865 | 52 | 0 | ||
866 | === modified file 'src/server/graphics/android/android_buffer_allocator.cpp' | |||
867 | --- src/server/graphics/android/android_buffer_allocator.cpp 2013-04-24 05:22:20 +0000 | |||
868 | +++ src/server/graphics/android/android_buffer_allocator.cpp 2013-05-09 15:25:39 +0000 | |||
869 | @@ -75,7 +75,7 @@ | |||
870 | 75 | return alloc_buffer_platform(buffer_properties.size, buffer_properties.format, usage); | 75 | return alloc_buffer_platform(buffer_properties.size, buffer_properties.format, usage); |
871 | 76 | } | 76 | } |
872 | 77 | 77 | ||
874 | 78 | std::shared_ptr<mga::AndroidBuffer> mga::AndroidGraphicBufferAllocator::alloc_buffer_platform( | 78 | std::shared_ptr<mga::Buffer> mga::AndroidGraphicBufferAllocator::alloc_buffer_platform( |
875 | 79 | geom::Size sz, geom::PixelFormat pf, mga::BufferUsage use) | 79 | geom::Size sz, geom::PixelFormat pf, mga::BufferUsage use) |
876 | 80 | { | 80 | { |
877 | 81 | auto buffer = std::make_shared<Buffer>(alloc_device, sz, pf, use); | 81 | auto buffer = std::make_shared<Buffer>(alloc_device, sz, pf, use); |
878 | 82 | 82 | ||
879 | === modified file 'src/server/graphics/android/android_graphic_buffer_allocator.h' | |||
880 | --- src/server/graphics/android/android_graphic_buffer_allocator.h 2013-04-24 05:22:20 +0000 | |||
881 | +++ src/server/graphics/android/android_graphic_buffer_allocator.h 2013-05-09 15:25:39 +0000 | |||
882 | @@ -46,7 +46,7 @@ | |||
883 | 46 | std::shared_ptr<compositor::Buffer> alloc_buffer( | 46 | std::shared_ptr<compositor::Buffer> alloc_buffer( |
884 | 47 | compositor::BufferProperties const& buffer_properties); | 47 | compositor::BufferProperties const& buffer_properties); |
885 | 48 | 48 | ||
887 | 49 | std::shared_ptr<AndroidBuffer> alloc_buffer_platform( | 49 | std::shared_ptr<Buffer> alloc_buffer_platform( |
888 | 50 | geometry::Size sz, geometry::PixelFormat pf, BufferUsage use); | 50 | geometry::Size sz, geometry::PixelFormat pf, BufferUsage use); |
889 | 51 | 51 | ||
890 | 52 | std::vector<geometry::PixelFormat> supported_pixel_formats(); | 52 | std::vector<geometry::PixelFormat> supported_pixel_formats(); |
891 | 53 | 53 | ||
892 | === modified file 'src/server/graphics/android/buffer.h' | |||
893 | --- src/server/graphics/android/buffer.h 2013-04-16 20:55:50 +0000 | |||
894 | +++ src/server/graphics/android/buffer.h 2013-05-09 15:25:39 +0000 | |||
895 | @@ -20,7 +20,7 @@ | |||
896 | 20 | #ifndef MIR_GRAPHICS_ANDROID_BUFFER_H_ | 20 | #ifndef MIR_GRAPHICS_ANDROID_BUFFER_H_ |
897 | 21 | #define MIR_GRAPHICS_ANDROID_BUFFER_H_ | 21 | #define MIR_GRAPHICS_ANDROID_BUFFER_H_ |
898 | 22 | 22 | ||
900 | 23 | #include "android_buffer.h" | 23 | #include "mir/compositor/buffer_basic.h" |
901 | 24 | #include "android_buffer_handle.h" | 24 | #include "android_buffer_handle.h" |
902 | 25 | 25 | ||
903 | 26 | #include <map> | 26 | #include <map> |
904 | @@ -38,22 +38,20 @@ | |||
905 | 38 | { | 38 | { |
906 | 39 | 39 | ||
907 | 40 | class GraphicAllocAdaptor; | 40 | class GraphicAllocAdaptor; |
909 | 41 | class Buffer: public AndroidBuffer | 41 | class Buffer: public compositor::BufferBasic |
910 | 42 | { | 42 | { |
911 | 43 | public: | 43 | public: |
912 | 44 | Buffer(const std::shared_ptr<GraphicAllocAdaptor>& device, | 44 | Buffer(const std::shared_ptr<GraphicAllocAdaptor>& device, |
913 | 45 | geometry::Size size, geometry::PixelFormat pf, BufferUsage use); | 45 | geometry::Size size, geometry::PixelFormat pf, BufferUsage use); |
914 | 46 | ~Buffer(); | 46 | ~Buffer(); |
915 | 47 | 47 | ||
916 | 48 | /* from BufferBasic */ | ||
917 | 49 | geometry::Size size() const; | 48 | geometry::Size size() const; |
918 | 50 | geometry::Stride stride() const; | 49 | geometry::Stride stride() const; |
919 | 51 | geometry::PixelFormat pixel_format() const; | 50 | geometry::PixelFormat pixel_format() const; |
920 | 51 | void bind_to_texture(); | ||
921 | 52 | std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const; | 52 | std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const; |
922 | 53 | void bind_to_texture(); | ||
923 | 54 | |||
924 | 55 | /* android-specific */ | ||
925 | 56 | std::shared_ptr<ANativeWindowBuffer> native_buffer_handle() const; | 53 | std::shared_ptr<ANativeWindowBuffer> native_buffer_handle() const; |
926 | 54 | |||
927 | 57 | private: | 55 | private: |
928 | 58 | std::shared_ptr<GraphicAllocAdaptor> const alloc_device; | 56 | std::shared_ptr<GraphicAllocAdaptor> const alloc_device; |
929 | 59 | 57 | ||
930 | 60 | 58 | ||
931 | === modified file 'src/server/graphics/android/default_framebuffer_factory.cpp' | |||
932 | --- src/server/graphics/android/default_framebuffer_factory.cpp 2013-04-24 05:22:20 +0000 | |||
933 | +++ src/server/graphics/android/default_framebuffer_factory.cpp 2013-05-09 15:25:39 +0000 | |||
934 | @@ -18,11 +18,12 @@ | |||
935 | 18 | */ | 18 | */ |
936 | 19 | 19 | ||
937 | 20 | #include "mir/graphics/android/mir_native_window.h" | 20 | #include "mir/graphics/android/mir_native_window.h" |
938 | 21 | #include "buffer.h" | ||
939 | 21 | #include "default_framebuffer_factory.h" | 22 | #include "default_framebuffer_factory.h" |
940 | 22 | #include "fb_device.h" | 23 | #include "fb_device.h" |
941 | 24 | #include "fb_simple_swapper.h" | ||
942 | 23 | #include "graphic_buffer_allocator.h" | 25 | #include "graphic_buffer_allocator.h" |
943 | 24 | #include "server_render_window.h" | 26 | #include "server_render_window.h" |
944 | 25 | #include "fb_simple_swapper.h" | ||
945 | 26 | 27 | ||
946 | 27 | #include <boost/throw_exception.hpp> | 28 | #include <boost/throw_exception.hpp> |
947 | 28 | #include <stdexcept> | 29 | #include <stdexcept> |
948 | @@ -43,7 +44,7 @@ | |||
949 | 43 | auto size = info_provider->display_size(); | 44 | auto size = info_provider->display_size(); |
950 | 44 | auto pf = info_provider->display_format(); | 45 | auto pf = info_provider->display_format(); |
951 | 45 | auto num_framebuffers = info_provider->number_of_framebuffers_available(); | 46 | auto num_framebuffers = info_provider->number_of_framebuffers_available(); |
953 | 46 | std::vector<std::shared_ptr<mga::AndroidBuffer>> buffers; | 47 | std::vector<std::shared_ptr<mc::Buffer>> buffers; |
954 | 47 | for( auto i = 0u; i < num_framebuffers; ++i) | 48 | for( auto i = 0u; i < num_framebuffers; ++i) |
955 | 48 | { | 49 | { |
956 | 49 | buffers.push_back(buffer_allocator->alloc_buffer_platform(size, pf, mga::BufferUsage::use_framebuffer_gles)); | 50 | buffers.push_back(buffer_allocator->alloc_buffer_platform(size, pf, mga::BufferUsage::use_framebuffer_gles)); |
957 | 50 | 51 | ||
958 | === modified file 'src/server/graphics/android/display_support_provider.h' | |||
959 | --- src/server/graphics/android/display_support_provider.h 2013-04-24 05:22:20 +0000 | |||
960 | +++ src/server/graphics/android/display_support_provider.h 2013-05-09 15:25:39 +0000 | |||
961 | @@ -25,12 +25,15 @@ | |||
962 | 25 | 25 | ||
963 | 26 | namespace mir | 26 | namespace mir |
964 | 27 | { | 27 | { |
965 | 28 | namespace compositor | ||
966 | 29 | { | ||
967 | 30 | class Buffer; | ||
968 | 31 | } | ||
969 | 28 | namespace graphics | 32 | namespace graphics |
970 | 29 | { | 33 | { |
971 | 30 | namespace android | 34 | namespace android |
972 | 31 | { | 35 | { |
973 | 32 | 36 | ||
974 | 33 | class AndroidBuffer; | ||
975 | 34 | class DisplaySupportProvider | 37 | class DisplaySupportProvider |
976 | 35 | { | 38 | { |
977 | 36 | public: | 39 | public: |
978 | @@ -41,7 +44,7 @@ | |||
979 | 41 | virtual unsigned int number_of_framebuffers_available() const = 0; | 44 | virtual unsigned int number_of_framebuffers_available() const = 0; |
980 | 42 | //this function schedules the next frontbuffer to be "buffer" parameter. depending on implementation, it may | 45 | //this function schedules the next frontbuffer to be "buffer" parameter. depending on implementation, it may |
981 | 43 | //post immediately, or be deferred. | 46 | //post immediately, or be deferred. |
983 | 44 | virtual void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer) = 0; | 47 | virtual void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer) = 0; |
984 | 45 | 48 | ||
985 | 46 | protected: | 49 | protected: |
986 | 47 | DisplaySupportProvider() = default; | 50 | DisplaySupportProvider() = default; |
987 | 48 | 51 | ||
988 | === modified file 'src/server/graphics/android/fb_device.cpp' | |||
989 | --- src/server/graphics/android/fb_device.cpp 2013-04-24 05:22:20 +0000 | |||
990 | +++ src/server/graphics/android/fb_device.cpp 2013-05-09 15:25:39 +0000 | |||
991 | @@ -19,13 +19,14 @@ | |||
992 | 19 | #include "mir/compositor/buffer.h" | 19 | #include "mir/compositor/buffer.h" |
993 | 20 | 20 | ||
994 | 21 | #include "fb_device.h" | 21 | #include "fb_device.h" |
996 | 22 | #include "android_buffer.h" | 22 | #include "buffer.h" |
997 | 23 | #include "android_format_conversion-inl.h" | 23 | #include "android_format_conversion-inl.h" |
998 | 24 | 24 | ||
999 | 25 | #include <algorithm> | 25 | #include <algorithm> |
1000 | 26 | #include <boost/throw_exception.hpp> | 26 | #include <boost/throw_exception.hpp> |
1001 | 27 | #include <stdexcept> | 27 | #include <stdexcept> |
1002 | 28 | 28 | ||
1003 | 29 | namespace mc=mir::compositor; | ||
1004 | 29 | namespace mga=mir::graphics::android; | 30 | namespace mga=mir::graphics::android; |
1005 | 30 | namespace geom=mir::geometry; | 31 | namespace geom=mir::geometry; |
1006 | 31 | 32 | ||
1007 | @@ -34,7 +35,7 @@ | |||
1008 | 34 | { | 35 | { |
1009 | 35 | } | 36 | } |
1010 | 36 | 37 | ||
1012 | 37 | void mga::FBDevice::set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer) | 38 | void mga::FBDevice::set_next_frontbuffer(std::shared_ptr<mc::Buffer> const& buffer) |
1013 | 38 | { | 39 | { |
1014 | 39 | auto handle = buffer->native_buffer_handle(); | 40 | auto handle = buffer->native_buffer_handle(); |
1015 | 40 | if (fb_device->post(fb_device.get(), handle->handle) != 0) | 41 | if (fb_device->post(fb_device.get(), handle->handle) != 0) |
1016 | 41 | 42 | ||
1017 | === modified file 'src/server/graphics/android/fb_device.h' | |||
1018 | --- src/server/graphics/android/fb_device.h 2013-04-24 05:22:20 +0000 | |||
1019 | +++ src/server/graphics/android/fb_device.h 2013-05-09 15:25:39 +0000 | |||
1020 | @@ -39,7 +39,7 @@ | |||
1021 | 39 | geometry::PixelFormat display_format() const; | 39 | geometry::PixelFormat display_format() const; |
1022 | 40 | unsigned int number_of_framebuffers_available() const; | 40 | unsigned int number_of_framebuffers_available() const; |
1023 | 41 | 41 | ||
1025 | 42 | void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer); | 42 | void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer); |
1026 | 43 | private: | 43 | private: |
1027 | 44 | std::shared_ptr<framebuffer_device_t> const fb_device; | 44 | std::shared_ptr<framebuffer_device_t> const fb_device; |
1028 | 45 | }; | 45 | }; |
1029 | 46 | 46 | ||
1030 | === modified file 'src/server/graphics/android/fb_simple_swapper.cpp' | |||
1031 | --- src/server/graphics/android/fb_simple_swapper.cpp 2013-04-24 05:22:20 +0000 | |||
1032 | +++ src/server/graphics/android/fb_simple_swapper.cpp 2013-05-09 15:25:39 +0000 | |||
1033 | @@ -22,9 +22,10 @@ | |||
1034 | 22 | #include <boost/throw_exception.hpp> | 22 | #include <boost/throw_exception.hpp> |
1035 | 23 | #include <stdexcept> | 23 | #include <stdexcept> |
1036 | 24 | 24 | ||
1037 | 25 | namespace mc=mir::compositor; | ||
1038 | 25 | namespace mga=mir::graphics::android; | 26 | namespace mga=mir::graphics::android; |
1039 | 26 | 27 | ||
1041 | 27 | std::shared_ptr<mga::AndroidBuffer> mga::FBSimpleSwapper::compositor_acquire() | 28 | std::shared_ptr<mc::Buffer> mga::FBSimpleSwapper::compositor_acquire() |
1042 | 28 | { | 29 | { |
1043 | 29 | std::unique_lock<std::mutex> lk(queue_lock); | 30 | std::unique_lock<std::mutex> lk(queue_lock); |
1044 | 30 | while (queue.empty()) | 31 | while (queue.empty()) |
1045 | @@ -37,7 +38,7 @@ | |||
1046 | 37 | return buffer; | 38 | return buffer; |
1047 | 38 | } | 39 | } |
1048 | 39 | 40 | ||
1050 | 40 | void mga::FBSimpleSwapper::compositor_release(std::shared_ptr<mga::AndroidBuffer> const& released_buffer) | 41 | void mga::FBSimpleSwapper::compositor_release(std::shared_ptr<mc::Buffer> const& released_buffer) |
1051 | 41 | { | 42 | { |
1052 | 42 | std::unique_lock<std::mutex> lk(queue_lock); | 43 | std::unique_lock<std::mutex> lk(queue_lock); |
1053 | 43 | 44 | ||
1054 | 44 | 45 | ||
1055 | === modified file 'src/server/graphics/android/fb_simple_swapper.h' | |||
1056 | --- src/server/graphics/android/fb_simple_swapper.h 2013-04-16 21:19:35 +0000 | |||
1057 | +++ src/server/graphics/android/fb_simple_swapper.h 2013-05-09 15:25:39 +0000 | |||
1058 | @@ -37,8 +37,8 @@ | |||
1059 | 37 | class FBSimpleSwapper : public FBSwapper | 37 | class FBSimpleSwapper : public FBSwapper |
1060 | 38 | { | 38 | { |
1061 | 39 | public: | 39 | public: |
1064 | 40 | template<typename AndroidBufferPtrContainer> | 40 | template<typename BufferPtrContainer> |
1065 | 41 | explicit FBSimpleSwapper(AndroidBufferPtrContainer const& buffer_list) | 41 | explicit FBSimpleSwapper(BufferPtrContainer const& buffer_list) |
1066 | 42 | { | 42 | { |
1067 | 43 | for (auto& buffer : buffer_list) | 43 | for (auto& buffer : buffer_list) |
1068 | 44 | { | 44 | { |
1069 | @@ -46,14 +46,14 @@ | |||
1070 | 46 | } | 46 | } |
1071 | 47 | } | 47 | } |
1072 | 48 | 48 | ||
1075 | 49 | std::shared_ptr<AndroidBuffer> compositor_acquire(); | 49 | std::shared_ptr<compositor::Buffer> compositor_acquire(); |
1076 | 50 | void compositor_release(std::shared_ptr<AndroidBuffer> const& released_buffer); | 50 | void compositor_release(std::shared_ptr<compositor::Buffer> const& released_buffer); |
1077 | 51 | 51 | ||
1078 | 52 | private: | 52 | private: |
1079 | 53 | std::mutex queue_lock; | 53 | std::mutex queue_lock; |
1080 | 54 | std::condition_variable cv; | 54 | std::condition_variable cv; |
1081 | 55 | 55 | ||
1083 | 56 | std::queue<std::shared_ptr<AndroidBuffer>> queue; | 56 | std::queue<std::shared_ptr<compositor::Buffer>> queue; |
1084 | 57 | }; | 57 | }; |
1085 | 58 | 58 | ||
1086 | 59 | } | 59 | } |
1087 | 60 | 60 | ||
1088 | === modified file 'src/server/graphics/android/fb_swapper.h' | |||
1089 | --- src/server/graphics/android/fb_swapper.h 2013-04-24 05:22:20 +0000 | |||
1090 | +++ src/server/graphics/android/fb_swapper.h 2013-05-09 15:25:39 +0000 | |||
1091 | @@ -24,20 +24,24 @@ | |||
1092 | 24 | 24 | ||
1093 | 25 | namespace mir | 25 | namespace mir |
1094 | 26 | { | 26 | { |
1095 | 27 | namespace compositor | ||
1096 | 28 | { | ||
1097 | 29 | class Buffer; | ||
1098 | 30 | } | ||
1099 | 27 | namespace graphics | 31 | namespace graphics |
1100 | 28 | { | 32 | { |
1101 | 29 | namespace android | 33 | namespace android |
1102 | 30 | { | 34 | { |
1103 | 31 | 35 | ||
1105 | 32 | class AndroidBuffer; | 36 | class Buffer; |
1106 | 33 | 37 | ||
1109 | 34 | class FBSwapper // (todo: for composition bypass, inherit from mc::BufferSwapper) | 38 | //TODO: remove this interface. FBSimpleSwapper should inherit from mc::BufferSwapper |
1110 | 35 | { | 39 | class FBSwapper{ |
1111 | 36 | public: | 40 | public: |
1112 | 37 | virtual ~FBSwapper() = default; | 41 | virtual ~FBSwapper() = default; |
1113 | 38 | 42 | ||
1116 | 39 | virtual std::shared_ptr<AndroidBuffer> compositor_acquire() = 0; | 43 | virtual std::shared_ptr<compositor::Buffer> compositor_acquire() = 0; |
1117 | 40 | virtual void compositor_release(std::shared_ptr<AndroidBuffer> const& released_buffer) = 0; | 44 | virtual void compositor_release(std::shared_ptr<compositor::Buffer> const& released_buffer) = 0; |
1118 | 41 | protected: | 45 | protected: |
1119 | 42 | FBSwapper() = default; | 46 | FBSwapper() = default; |
1120 | 43 | FBSwapper(FBSwapper const&) = delete; | 47 | FBSwapper(FBSwapper const&) = delete; |
1121 | 44 | 48 | ||
1122 | === modified file 'src/server/graphics/android/graphic_buffer_allocator.h' | |||
1123 | --- src/server/graphics/android/graphic_buffer_allocator.h 2013-04-16 20:55:50 +0000 | |||
1124 | +++ src/server/graphics/android/graphic_buffer_allocator.h 2013-05-09 15:25:39 +0000 | |||
1125 | @@ -29,8 +29,8 @@ | |||
1126 | 29 | { | 29 | { |
1127 | 30 | namespace android | 30 | namespace android |
1128 | 31 | { | 31 | { |
1129 | 32 | class Buffer; | ||
1130 | 32 | 33 | ||
1131 | 33 | class AndroidBuffer; | ||
1132 | 34 | class GraphicBufferAllocator: public compositor::GraphicBufferAllocator | 34 | class GraphicBufferAllocator: public compositor::GraphicBufferAllocator |
1133 | 35 | { | 35 | { |
1134 | 36 | public: | 36 | public: |
1135 | @@ -39,7 +39,7 @@ | |||
1136 | 39 | 39 | ||
1137 | 40 | virtual std::shared_ptr<compositor::Buffer> alloc_buffer( | 40 | virtual std::shared_ptr<compositor::Buffer> alloc_buffer( |
1138 | 41 | compositor::BufferProperties const& buffer_properties) = 0; | 41 | compositor::BufferProperties const& buffer_properties) = 0; |
1140 | 42 | virtual std::shared_ptr<AndroidBuffer> alloc_buffer_platform( | 42 | virtual std::shared_ptr<Buffer> alloc_buffer_platform( |
1141 | 43 | geometry::Size sz, geometry::PixelFormat pf, BufferUsage use) = 0; | 43 | geometry::Size sz, geometry::PixelFormat pf, BufferUsage use) = 0; |
1142 | 44 | virtual std::vector<geometry::PixelFormat> supported_pixel_formats() = 0; | 44 | virtual std::vector<geometry::PixelFormat> supported_pixel_formats() = 0; |
1143 | 45 | 45 | ||
1144 | 46 | 46 | ||
1145 | === modified file 'src/server/graphics/android/hwc10_device.cpp' | |||
1146 | --- src/server/graphics/android/hwc10_device.cpp 2013-04-23 15:21:23 +0000 | |||
1147 | +++ src/server/graphics/android/hwc10_device.cpp 2013-05-09 15:25:39 +0000 | |||
1148 | @@ -22,6 +22,7 @@ | |||
1149 | 22 | #include <boost/throw_exception.hpp> | 22 | #include <boost/throw_exception.hpp> |
1150 | 23 | #include <stdexcept> | 23 | #include <stdexcept> |
1151 | 24 | 24 | ||
1152 | 25 | namespace mc=mir::compositor; | ||
1153 | 25 | namespace mga=mir::graphics::android; | 26 | namespace mga=mir::graphics::android; |
1154 | 26 | namespace geom=mir::geometry; | 27 | namespace geom=mir::geometry; |
1155 | 27 | 28 | ||
1156 | @@ -51,7 +52,7 @@ | |||
1157 | 51 | return fb_device->number_of_framebuffers_available(); | 52 | return fb_device->number_of_framebuffers_available(); |
1158 | 52 | } | 53 | } |
1159 | 53 | 54 | ||
1161 | 54 | void mga::HWC10Device::set_next_frontbuffer(std::shared_ptr<mga::AndroidBuffer> const& buffer) | 55 | void mga::HWC10Device::set_next_frontbuffer(std::shared_ptr<mc::Buffer> const& buffer) |
1162 | 55 | { | 56 | { |
1163 | 56 | fb_device->set_next_frontbuffer(buffer); | 57 | fb_device->set_next_frontbuffer(buffer); |
1164 | 57 | } | 58 | } |
1165 | 58 | 59 | ||
1166 | === modified file 'src/server/graphics/android/hwc10_device.h' | |||
1167 | --- src/server/graphics/android/hwc10_device.h 2013-04-23 15:21:23 +0000 | |||
1168 | +++ src/server/graphics/android/hwc10_device.h 2013-05-09 15:25:39 +0000 | |||
1169 | @@ -39,7 +39,7 @@ | |||
1170 | 39 | geometry::Size display_size() const; | 39 | geometry::Size display_size() const; |
1171 | 40 | geometry::PixelFormat display_format() const; | 40 | geometry::PixelFormat display_format() const; |
1172 | 41 | unsigned int number_of_framebuffers_available() const; | 41 | unsigned int number_of_framebuffers_available() const; |
1174 | 42 | void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer); | 42 | void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer); |
1175 | 43 | 43 | ||
1176 | 44 | void commit_frame(EGLDisplay dpy, EGLSurface sur); | 44 | void commit_frame(EGLDisplay dpy, EGLSurface sur); |
1177 | 45 | private: | 45 | private: |
1178 | 46 | 46 | ||
1179 | === modified file 'src/server/graphics/android/hwc11_device.cpp' | |||
1180 | --- src/server/graphics/android/hwc11_device.cpp 2013-04-24 05:22:20 +0000 | |||
1181 | +++ src/server/graphics/android/hwc11_device.cpp 2013-05-09 15:25:39 +0000 | |||
1182 | @@ -22,6 +22,7 @@ | |||
1183 | 22 | #include <boost/throw_exception.hpp> | 22 | #include <boost/throw_exception.hpp> |
1184 | 23 | #include <stdexcept> | 23 | #include <stdexcept> |
1185 | 24 | 24 | ||
1186 | 25 | namespace mc=mir::compositor; | ||
1187 | 25 | namespace mga=mir::graphics::android; | 26 | namespace mga=mir::graphics::android; |
1188 | 26 | namespace geom=mir::geometry; | 27 | namespace geom=mir::geometry; |
1189 | 27 | 28 | ||
1190 | @@ -71,7 +72,7 @@ | |||
1191 | 71 | return 2u; | 72 | return 2u; |
1192 | 72 | } | 73 | } |
1193 | 73 | 74 | ||
1195 | 74 | void mga::HWC11Device::set_next_frontbuffer(std::shared_ptr<mga::AndroidBuffer> const& buffer) | 75 | void mga::HWC11Device::set_next_frontbuffer(std::shared_ptr<mc::Buffer> const& buffer) |
1196 | 75 | { | 76 | { |
1197 | 76 | layer_organizer->set_fb_target(buffer); | 77 | layer_organizer->set_fb_target(buffer); |
1198 | 77 | fb_device->set_next_frontbuffer(buffer); | 78 | fb_device->set_next_frontbuffer(buffer); |
1199 | 78 | 79 | ||
1200 | === modified file 'src/server/graphics/android/hwc11_device.h' | |||
1201 | --- src/server/graphics/android/hwc11_device.h 2013-04-24 05:22:20 +0000 | |||
1202 | +++ src/server/graphics/android/hwc11_device.h 2013-05-09 15:25:39 +0000 | |||
1203 | @@ -41,7 +41,7 @@ | |||
1204 | 41 | geometry::Size display_size() const; | 41 | geometry::Size display_size() const; |
1205 | 42 | geometry::PixelFormat display_format() const; | 42 | geometry::PixelFormat display_format() const; |
1206 | 43 | unsigned int number_of_framebuffers_available() const; | 43 | unsigned int number_of_framebuffers_available() const; |
1208 | 44 | void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer); | 44 | void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer); |
1209 | 45 | 45 | ||
1210 | 46 | void commit_frame(EGLDisplay dpy, EGLSurface sur); | 46 | void commit_frame(EGLDisplay dpy, EGLSurface sur); |
1211 | 47 | 47 | ||
1212 | 48 | 48 | ||
1213 | === modified file 'src/server/graphics/android/hwc_common_device.h' | |||
1214 | --- src/server/graphics/android/hwc_common_device.h 2013-04-23 15:21:23 +0000 | |||
1215 | +++ src/server/graphics/android/hwc_common_device.h 2013-05-09 15:25:39 +0000 | |||
1216 | @@ -49,7 +49,7 @@ | |||
1217 | 49 | void wait_for_vsync(); | 49 | void wait_for_vsync(); |
1218 | 50 | 50 | ||
1219 | 51 | virtual geometry::Size display_size() const = 0; | 51 | virtual geometry::Size display_size() const = 0; |
1221 | 52 | virtual void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer) = 0; | 52 | virtual void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer) = 0; |
1222 | 53 | virtual void commit_frame(EGLDisplay dpy, EGLSurface sur) = 0; | 53 | virtual void commit_frame(EGLDisplay dpy, EGLSurface sur) = 0; |
1223 | 54 | 54 | ||
1224 | 55 | void notify_vsync(); | 55 | void notify_vsync(); |
1225 | 56 | 56 | ||
1226 | === modified file 'src/server/graphics/android/hwc_device.h' | |||
1227 | --- src/server/graphics/android/hwc_device.h 2013-04-24 05:22:20 +0000 | |||
1228 | +++ src/server/graphics/android/hwc_device.h 2013-05-09 15:25:39 +0000 | |||
1229 | @@ -39,7 +39,7 @@ | |||
1230 | 39 | virtual geometry::Size display_size() const = 0; | 39 | virtual geometry::Size display_size() const = 0; |
1231 | 40 | virtual geometry::PixelFormat display_format() const = 0; | 40 | virtual geometry::PixelFormat display_format() const = 0; |
1232 | 41 | virtual unsigned int number_of_framebuffers_available() const = 0; | 41 | virtual unsigned int number_of_framebuffers_available() const = 0; |
1234 | 42 | virtual void set_next_frontbuffer(std::shared_ptr<AndroidBuffer> const& buffer) = 0; | 42 | virtual void set_next_frontbuffer(std::shared_ptr<compositor::Buffer> const& buffer) = 0; |
1235 | 43 | 43 | ||
1236 | 44 | virtual void wait_for_vsync() = 0; | 44 | virtual void wait_for_vsync() = 0; |
1237 | 45 | virtual void commit_frame(EGLDisplay dpy, EGLSurface sur) = 0; | 45 | virtual void commit_frame(EGLDisplay dpy, EGLSurface sur) = 0; |
1238 | 46 | 46 | ||
1239 | === modified file 'src/server/graphics/android/hwc_layerlist.cpp' | |||
1240 | --- src/server/graphics/android/hwc_layerlist.cpp 2013-04-17 00:22:29 +0000 | |||
1241 | +++ src/server/graphics/android/hwc_layerlist.cpp 2013-05-09 15:25:39 +0000 | |||
1242 | @@ -17,10 +17,11 @@ | |||
1243 | 17 | */ | 17 | */ |
1244 | 18 | 18 | ||
1245 | 19 | #include "hwc_layerlist.h" | 19 | #include "hwc_layerlist.h" |
1247 | 20 | #include "android_buffer.h" | 20 | #include "buffer.h" |
1248 | 21 | 21 | ||
1249 | 22 | #include <cstring> | 22 | #include <cstring> |
1250 | 23 | 23 | ||
1251 | 24 | namespace mc=mir::compositor; | ||
1252 | 24 | namespace mga=mir::graphics::android; | 25 | namespace mga=mir::graphics::android; |
1253 | 25 | namespace geom=mir::geometry; | 26 | namespace geom=mir::geometry; |
1254 | 26 | 27 | ||
1255 | @@ -94,7 +95,7 @@ | |||
1256 | 94 | return layer_list; | 95 | return layer_list; |
1257 | 95 | } | 96 | } |
1258 | 96 | 97 | ||
1260 | 97 | void mga::HWCLayerList::set_fb_target(std::shared_ptr<mga::AndroidBuffer> const& buffer) | 98 | void mga::HWCLayerList::set_fb_target(std::shared_ptr<mc::Buffer> const& buffer) |
1261 | 98 | { | 99 | { |
1262 | 99 | auto handle = buffer->native_buffer_handle(); | 100 | auto handle = buffer->native_buffer_handle(); |
1263 | 100 | 101 | ||
1264 | 101 | 102 | ||
1265 | === modified file 'src/server/graphics/android/hwc_layerlist.h' | |||
1266 | --- src/server/graphics/android/hwc_layerlist.h 2013-04-17 00:22:29 +0000 | |||
1267 | +++ src/server/graphics/android/hwc_layerlist.h 2013-05-09 15:25:39 +0000 | |||
1268 | @@ -26,12 +26,15 @@ | |||
1269 | 26 | #include <initializer_list> | 26 | #include <initializer_list> |
1270 | 27 | namespace mir | 27 | namespace mir |
1271 | 28 | { | 28 | { |
1272 | 29 | namespace compositor | ||
1273 | 30 | { | ||
1274 | 31 | class Buffer; | ||
1275 | 32 | } | ||
1276 | 29 | namespace graphics | 33 | namespace graphics |
1277 | 30 | { | 34 | { |
1278 | 31 | namespace android | 35 | namespace android |
1279 | 32 | { | 36 | { |
1280 | 33 | 37 | ||
1281 | 34 | class AndroidBuffer; | ||
1282 | 35 | class HWCDefaultLayer; | 38 | class HWCDefaultLayer; |
1283 | 36 | typedef struct std::vector<std::shared_ptr<HWCDefaultLayer>> LayerList; | 39 | typedef struct std::vector<std::shared_ptr<HWCDefaultLayer>> LayerList; |
1284 | 37 | 40 | ||
1285 | @@ -72,7 +75,7 @@ | |||
1286 | 72 | public: | 75 | public: |
1287 | 73 | virtual ~HWCLayerOrganizer() = default; | 76 | virtual ~HWCLayerOrganizer() = default; |
1288 | 74 | virtual const LayerList& native_list() const = 0; | 77 | virtual const LayerList& native_list() const = 0; |
1290 | 75 | virtual void set_fb_target(std::shared_ptr<AndroidBuffer> const&) = 0; | 78 | virtual void set_fb_target(std::shared_ptr<compositor::Buffer> const&) = 0; |
1291 | 76 | 79 | ||
1292 | 77 | protected: | 80 | protected: |
1293 | 78 | HWCLayerOrganizer() = default; | 81 | HWCLayerOrganizer() = default; |
1294 | @@ -87,7 +90,7 @@ | |||
1295 | 87 | HWCLayerList(); | 90 | HWCLayerList(); |
1296 | 88 | const LayerList& native_list() const; | 91 | const LayerList& native_list() const; |
1297 | 89 | 92 | ||
1299 | 90 | void set_fb_target(std::shared_ptr<AndroidBuffer> const&); | 93 | void set_fb_target(std::shared_ptr<compositor::Buffer> const&); |
1300 | 91 | 94 | ||
1301 | 92 | private: | 95 | private: |
1302 | 93 | LayerList layer_list; | 96 | LayerList layer_list; |
1303 | 94 | 97 | ||
1304 | === modified file 'src/server/graphics/android/server_render_window.cpp' | |||
1305 | --- src/server/graphics/android/server_render_window.cpp 2013-04-24 05:22:20 +0000 | |||
1306 | +++ src/server/graphics/android/server_render_window.cpp 2013-05-09 15:25:39 +0000 | |||
1307 | @@ -21,7 +21,7 @@ | |||
1308 | 21 | #include "server_render_window.h" | 21 | #include "server_render_window.h" |
1309 | 22 | #include "display_support_provider.h" | 22 | #include "display_support_provider.h" |
1310 | 23 | #include "fb_swapper.h" | 23 | #include "fb_swapper.h" |
1312 | 24 | #include "android_buffer.h" | 24 | #include "buffer.h" |
1313 | 25 | #include "android_format_conversion-inl.h" | 25 | #include "android_format_conversion-inl.h" |
1314 | 26 | 26 | ||
1315 | 27 | #include <boost/throw_exception.hpp> | 27 | #include <boost/throw_exception.hpp> |
1316 | 28 | 28 | ||
1317 | === modified file 'src/server/graphics/android/server_render_window.h' | |||
1318 | --- src/server/graphics/android/server_render_window.h 2013-04-24 05:22:20 +0000 | |||
1319 | +++ src/server/graphics/android/server_render_window.h 2013-05-09 15:25:39 +0000 | |||
1320 | @@ -31,6 +31,10 @@ | |||
1321 | 31 | 31 | ||
1322 | 32 | namespace mir | 32 | namespace mir |
1323 | 33 | { | 33 | { |
1324 | 34 | namespace compositor | ||
1325 | 35 | { | ||
1326 | 36 | class Buffer; | ||
1327 | 37 | } | ||
1328 | 34 | namespace graphics | 38 | namespace graphics |
1329 | 35 | { | 39 | { |
1330 | 36 | namespace android | 40 | namespace android |
1331 | @@ -38,7 +42,6 @@ | |||
1332 | 38 | 42 | ||
1333 | 39 | class FBSwapper; | 43 | class FBSwapper; |
1334 | 40 | class DisplaySupportProvider; | 44 | class DisplaySupportProvider; |
1335 | 41 | class AndroidBuffer; | ||
1336 | 42 | class ServerRenderWindow : public AndroidDriverInterpreter | 45 | class ServerRenderWindow : public AndroidDriverInterpreter |
1337 | 43 | { | 46 | { |
1338 | 44 | public: | 47 | public: |
1339 | @@ -54,7 +57,7 @@ | |||
1340 | 54 | std::shared_ptr<FBSwapper> const swapper; | 57 | std::shared_ptr<FBSwapper> const swapper; |
1341 | 55 | std::shared_ptr<DisplaySupportProvider> const poster; | 58 | std::shared_ptr<DisplaySupportProvider> const poster; |
1342 | 56 | 59 | ||
1344 | 57 | std::unordered_map<ANativeWindowBuffer*, std::shared_ptr<AndroidBuffer>> buffers_in_driver; | 60 | std::unordered_map<ANativeWindowBuffer*, std::shared_ptr<compositor::Buffer>> buffers_in_driver; |
1345 | 58 | 61 | ||
1346 | 59 | int format; | 62 | int format; |
1347 | 60 | }; | 63 | }; |
1348 | 61 | 64 | ||
1349 | === modified file 'src/server/graphics/gbm/gbm_buffer.cpp' | |||
1350 | --- src/server/graphics/gbm/gbm_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
1351 | +++ src/server/graphics/gbm/gbm_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
1352 | @@ -127,3 +127,8 @@ | |||
1353 | 127 | { | 127 | { |
1354 | 128 | texture_binder->bind_to_texture(); | 128 | texture_binder->bind_to_texture(); |
1355 | 129 | } | 129 | } |
1356 | 130 | |||
1357 | 131 | std::shared_ptr<MirNativeBuffer> mgg::GBMBuffer::native_buffer_handle() const | ||
1358 | 132 | { | ||
1359 | 133 | return std::make_shared<MirNativeBuffer>(); | ||
1360 | 134 | } | ||
1361 | 130 | 135 | ||
1362 | === modified file 'src/server/graphics/gbm/gbm_buffer.h' | |||
1363 | --- src/server/graphics/gbm/gbm_buffer.h 2013-04-24 05:22:20 +0000 | |||
1364 | +++ src/server/graphics/gbm/gbm_buffer.h 2013-05-09 15:25:39 +0000 | |||
1365 | @@ -54,6 +54,7 @@ | |||
1366 | 54 | virtual geometry::PixelFormat pixel_format() const; | 54 | virtual geometry::PixelFormat pixel_format() const; |
1367 | 55 | 55 | ||
1368 | 56 | virtual std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const; | 56 | virtual std::shared_ptr<compositor::BufferIPCPackage> get_ipc_package() const; |
1369 | 57 | virtual std::shared_ptr<MirNativeBuffer> native_buffer_handle() const; | ||
1370 | 57 | 58 | ||
1371 | 58 | virtual void bind_to_texture(); | 59 | virtual void bind_to_texture(); |
1372 | 59 | 60 | ||
1373 | 60 | 61 | ||
1374 | === modified file 'tests/integration-tests/client/test_client_render.cpp' | |||
1375 | --- tests/integration-tests/client/test_client_render.cpp 2013-04-24 05:22:20 +0000 | |||
1376 | +++ tests/integration-tests/client/test_client_render.cpp 2013-05-09 15:25:39 +0000 | |||
1377 | @@ -21,7 +21,6 @@ | |||
1378 | 21 | #include "mir/compositor/buffer_ipc_package.h" | 21 | #include "mir/compositor/buffer_ipc_package.h" |
1379 | 22 | #include "mir/compositor/buffer_properties.h" | 22 | #include "mir/compositor/buffer_properties.h" |
1380 | 23 | #include "mir/graphics/buffer_initializer.h" | 23 | #include "mir/graphics/buffer_initializer.h" |
1381 | 24 | #include "src/server/graphics/android/android_buffer.h" | ||
1382 | 25 | #include "src/server/graphics/android/android_graphic_buffer_allocator.h" | 24 | #include "src/server/graphics/android/android_graphic_buffer_allocator.h" |
1383 | 26 | 25 | ||
1384 | 27 | #include "mir_test/draw/android_graphics.h" | 26 | #include "mir_test/draw/android_graphics.h" |
1385 | 28 | 27 | ||
1386 | === modified file 'tests/integration-tests/graphics/android/test_buffer_integration.cpp' | |||
1387 | --- tests/integration-tests/graphics/android/test_buffer_integration.cpp 2013-04-24 05:22:20 +0000 | |||
1388 | +++ tests/integration-tests/graphics/android/test_buffer_integration.cpp 2013-05-09 15:25:39 +0000 | |||
1389 | @@ -16,7 +16,6 @@ | |||
1390 | 16 | * Authored by: Kevin DuBois <kevin.dubois@canonical.com> | 16 | * Authored by: Kevin DuBois <kevin.dubois@canonical.com> |
1391 | 17 | */ | 17 | */ |
1392 | 18 | 18 | ||
1393 | 19 | #include "mir/graphics/platform.h" | ||
1394 | 20 | #include "src/server/graphics/android/android_graphic_buffer_allocator.h" | 19 | #include "src/server/graphics/android/android_graphic_buffer_allocator.h" |
1395 | 21 | #include "mir/graphics/buffer_initializer.h" | 20 | #include "mir/graphics/buffer_initializer.h" |
1396 | 22 | #include "mir/graphics/null_display_report.h" | 21 | #include "mir/graphics/null_display_report.h" |
1397 | @@ -43,9 +42,6 @@ | |||
1398 | 43 | protected: | 42 | protected: |
1399 | 44 | virtual void SetUp() | 43 | virtual void SetUp() |
1400 | 45 | { | 44 | { |
1401 | 46 | platform = mg::create_platform(std::make_shared<mg::NullDisplayReport>()); | ||
1402 | 47 | ASSERT_TRUE(platform != NULL); | ||
1403 | 48 | |||
1404 | 49 | size = geom::Size{geom::Width{334}, | 45 | size = geom::Size{geom::Width{334}, |
1405 | 50 | geom::Height{122}}; | 46 | geom::Height{122}}; |
1406 | 51 | pf = geom::PixelFormat::abgr_8888; | 47 | pf = geom::PixelFormat::abgr_8888; |
1407 | @@ -58,8 +54,6 @@ | |||
1408 | 58 | geom::PixelFormat pf; | 54 | geom::PixelFormat pf; |
1409 | 59 | mc::BufferProperties buffer_properties; | 55 | mc::BufferProperties buffer_properties; |
1410 | 60 | mtd::TestGrallocMapper sw_renderer; | 56 | mtd::TestGrallocMapper sw_renderer; |
1411 | 61 | |||
1412 | 62 | std::shared_ptr<mg::Platform> platform; | ||
1413 | 63 | }; | 57 | }; |
1414 | 64 | 58 | ||
1415 | 65 | } | 59 | } |
1416 | @@ -98,7 +92,6 @@ | |||
1417 | 98 | auto allocator = std::make_shared<mga::AndroidGraphicBufferAllocator>(null_buffer_initializer); | 92 | auto allocator = std::make_shared<mga::AndroidGraphicBufferAllocator>(null_buffer_initializer); |
1418 | 99 | auto strategy = std::make_shared<mc::SwapperFactory>(allocator); | 93 | auto strategy = std::make_shared<mc::SwapperFactory>(allocator); |
1419 | 100 | mc::BufferProperties actual; | 94 | mc::BufferProperties actual; |
1420 | 101 | mc::BufferID id{34}; | ||
1421 | 102 | auto swapper = strategy->create_swapper(actual, buffer_properties); | 95 | auto swapper = strategy->create_swapper(actual, buffer_properties); |
1422 | 103 | auto returned_buffer = swapper->client_acquire(); | 96 | auto returned_buffer = swapper->client_acquire(); |
1423 | 104 | 97 | ||
1424 | 105 | 98 | ||
1425 | === modified file 'tests/unit-tests/client/android/test_client_android_buffer.cpp' | |||
1426 | --- tests/unit-tests/client/android/test_client_android_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
1427 | +++ tests/unit-tests/client/android/test_client_android_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
1428 | @@ -286,7 +286,7 @@ | |||
1429 | 286 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), | 286 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), |
1430 | 287 | size, pf); | 287 | size, pf); |
1431 | 288 | 288 | ||
1433 | 289 | auto native_handle = buffer->get_native_handle(); | 289 | auto native_handle = buffer->native_buffer_handle(); |
1434 | 290 | 290 | ||
1435 | 291 | ASSERT_NE(nullptr, native_handle); | 291 | ASSERT_NE(nullptr, native_handle); |
1436 | 292 | EXPECT_EQ(buffer_handle, native_handle->handle); | 292 | EXPECT_EQ(buffer_handle, native_handle->handle); |
1437 | @@ -297,7 +297,7 @@ | |||
1438 | 297 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), | 297 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), |
1439 | 298 | size, pf); | 298 | size, pf); |
1440 | 299 | 299 | ||
1442 | 300 | auto native_handle = buffer->get_native_handle(); | 300 | auto native_handle = buffer->native_buffer_handle(); |
1443 | 301 | 301 | ||
1444 | 302 | ASSERT_NE(nullptr, native_handle); | 302 | ASSERT_NE(nullptr, native_handle); |
1445 | 303 | EXPECT_EQ(width.as_uint32_t(), static_cast<uint32_t>(native_handle->width)); | 303 | EXPECT_EQ(width.as_uint32_t(), static_cast<uint32_t>(native_handle->width)); |
1446 | @@ -308,7 +308,7 @@ | |||
1447 | 308 | { | 308 | { |
1448 | 309 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); | 309 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); |
1449 | 310 | 310 | ||
1451 | 311 | auto native_handle = buffer->get_native_handle(); | 311 | auto native_handle = buffer->native_buffer_handle(); |
1452 | 312 | int correct_usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER; | 312 | int correct_usage = GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_HW_RENDER; |
1453 | 313 | ASSERT_NE(nullptr, native_handle); | 313 | ASSERT_NE(nullptr, native_handle); |
1454 | 314 | EXPECT_EQ(correct_usage, native_handle->usage); | 314 | EXPECT_EQ(correct_usage, native_handle->usage); |
1455 | @@ -318,7 +318,7 @@ | |||
1456 | 318 | { | 318 | { |
1457 | 319 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); | 319 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); |
1458 | 320 | 320 | ||
1460 | 321 | auto native_handle = buffer->get_native_handle(); | 321 | auto native_handle = buffer->native_buffer_handle(); |
1461 | 322 | ASSERT_NE(nullptr, native_handle); | 322 | ASSERT_NE(nullptr, native_handle); |
1462 | 323 | EXPECT_EQ(static_cast<int32_t>(stride.as_uint32_t()), native_handle->stride); | 323 | EXPECT_EQ(static_cast<int32_t>(stride.as_uint32_t()), native_handle->stride); |
1463 | 324 | } | 324 | } |
1464 | @@ -327,7 +327,7 @@ | |||
1465 | 327 | { | 327 | { |
1466 | 328 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); | 328 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); |
1467 | 329 | 329 | ||
1469 | 330 | auto native_handle = buffer->get_native_handle(); | 330 | auto native_handle = buffer->native_buffer_handle(); |
1470 | 331 | 331 | ||
1471 | 332 | ASSERT_NE(nullptr, native_handle); | 332 | ASSERT_NE(nullptr, native_handle); |
1472 | 333 | ASSERT_NE(nullptr, native_handle->common.incRef); | 333 | ASSERT_NE(nullptr, native_handle->common.incRef); |
1473 | @@ -336,19 +336,3 @@ | |||
1474 | 336 | native_handle->common.incRef(NULL); | 336 | native_handle->common.incRef(NULL); |
1475 | 337 | native_handle->common.decRef(NULL); | 337 | native_handle->common.decRef(NULL); |
1476 | 338 | } | 338 | } |
1477 | 339 | |||
1478 | 340 | TEST_F(ClientAndroidBufferTest, buffer_returns_creation_package) | ||
1479 | 341 | { | ||
1480 | 342 | buffer = std::make_shared<mcla::AndroidClientBuffer>(mock_android_registrar, std::move(package), size, pf); | ||
1481 | 343 | |||
1482 | 344 | auto package_return = buffer->get_buffer_package(); | ||
1483 | 345 | |||
1484 | 346 | EXPECT_EQ(package->data_items, package_return->data_items); | ||
1485 | 347 | EXPECT_EQ(package->fd_items, package_return->fd_items); | ||
1486 | 348 | EXPECT_EQ(package->stride, package_return->stride); | ||
1487 | 349 | for(auto i=0; i<mir_buffer_package_max; i++) | ||
1488 | 350 | EXPECT_EQ(package->data[i], package_return->data[i]); | ||
1489 | 351 | for(auto i=0; i<mir_buffer_package_max; i++) | ||
1490 | 352 | EXPECT_EQ(package->fd[i], package_return->fd[i]); | ||
1491 | 353 | } | ||
1492 | 354 | |||
1493 | 355 | 339 | ||
1494 | === modified file 'tests/unit-tests/client/android/test_client_surface_interpreter.cpp' | |||
1495 | --- tests/unit-tests/client/android/test_client_surface_interpreter.cpp 2013-04-24 05:22:20 +0000 | |||
1496 | +++ tests/unit-tests/client/android/test_client_surface_interpreter.cpp 2013-05-09 15:25:39 +0000 | |||
1497 | @@ -40,9 +40,12 @@ | |||
1498 | 40 | MockClientBuffer() | 40 | MockClientBuffer() |
1499 | 41 | { | 41 | { |
1500 | 42 | using namespace testing; | 42 | using namespace testing; |
1503 | 43 | ON_CALL(*this, get_native_handle()) | 43 | buffer = std::make_shared<ANativeWindowBuffer>(); |
1504 | 44 | .WillByDefault(Return(&buffer)); | 44 | ON_CALL(*this, native_buffer_handle()) |
1505 | 45 | .WillByDefault(Return(buffer)); | ||
1506 | 45 | } | 46 | } |
1507 | 47 | ~MockClientBuffer() noexcept {} | ||
1508 | 48 | |||
1509 | 46 | MOCK_METHOD0(secure_for_cpu_write, std::shared_ptr<mcl::MemoryRegion>()); | 49 | MOCK_METHOD0(secure_for_cpu_write, std::shared_ptr<mcl::MemoryRegion>()); |
1510 | 47 | MOCK_CONST_METHOD0(size, geom::Size()); | 50 | MOCK_CONST_METHOD0(size, geom::Size()); |
1511 | 48 | MOCK_CONST_METHOD0(stride, geom::Stride()); | 51 | MOCK_CONST_METHOD0(stride, geom::Stride()); |
1512 | @@ -52,10 +55,9 @@ | |||
1513 | 52 | MOCK_METHOD0(mark_as_submitted, void()); | 55 | MOCK_METHOD0(mark_as_submitted, void()); |
1514 | 53 | MOCK_METHOD0(increment_age, void()); | 56 | MOCK_METHOD0(increment_age, void()); |
1515 | 54 | 57 | ||
1518 | 55 | MOCK_CONST_METHOD0(get_buffer_package, std::shared_ptr<MirBufferPackage>()); | 58 | MOCK_CONST_METHOD0(native_buffer_handle, std::shared_ptr<MirNativeBuffer>()); |
1517 | 56 | MOCK_METHOD0(get_native_handle, ANativeWindowBuffer*()); | ||
1519 | 57 | 59 | ||
1521 | 58 | ANativeWindowBuffer buffer; | 60 | std::shared_ptr<ANativeWindowBuffer> buffer; |
1522 | 59 | native_handle_t handle; | 61 | native_handle_t handle; |
1523 | 60 | }; | 62 | }; |
1524 | 61 | 63 | ||
1525 | @@ -116,21 +118,21 @@ | |||
1526 | 116 | { | 118 | { |
1527 | 117 | using namespace testing; | 119 | using namespace testing; |
1528 | 118 | native_handle_t handle; | 120 | native_handle_t handle; |
1531 | 119 | ANativeWindowBuffer buffer; | 121 | auto buffer = std::make_shared<ANativeWindowBuffer>(); |
1532 | 120 | buffer.handle = &handle; | 122 | buffer->handle = &handle; |
1533 | 121 | 123 | ||
1534 | 122 | testing::NiceMock<MockMirSurface> mock_surface{surf_params}; | 124 | testing::NiceMock<MockMirSurface> mock_surface{surf_params}; |
1535 | 123 | mcla::ClientSurfaceInterpreter interpreter(mock_surface); | 125 | mcla::ClientSurfaceInterpreter interpreter(mock_surface); |
1536 | 124 | 126 | ||
1538 | 125 | EXPECT_CALL(*mock_client_buffer, get_native_handle()) | 127 | EXPECT_CALL(*mock_client_buffer, native_buffer_handle()) |
1539 | 126 | .Times(1) | 128 | .Times(1) |
1541 | 127 | .WillOnce(Return(&buffer)); | 129 | .WillOnce(Return(buffer)); |
1542 | 128 | EXPECT_CALL(mock_surface, get_current_buffer()) | 130 | EXPECT_CALL(mock_surface, get_current_buffer()) |
1543 | 129 | .Times(1) | 131 | .Times(1) |
1544 | 130 | .WillOnce(Return(mock_client_buffer)); | 132 | .WillOnce(Return(mock_client_buffer)); |
1545 | 131 | 133 | ||
1546 | 132 | auto returned_buffer = interpreter.driver_requests_buffer(); | 134 | auto returned_buffer = interpreter.driver_requests_buffer(); |
1548 | 133 | EXPECT_EQ(&buffer, returned_buffer); | 135 | EXPECT_EQ(buffer.get(), returned_buffer); |
1549 | 134 | } | 136 | } |
1550 | 135 | 137 | ||
1551 | 136 | TEST_F(AndroidInterpreterTest, native_window_queue_advances_buffer) | 138 | TEST_F(AndroidInterpreterTest, native_window_queue_advances_buffer) |
1552 | 137 | 139 | ||
1553 | === modified file 'tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp' | |||
1554 | --- tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
1555 | +++ tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
1556 | @@ -82,7 +82,7 @@ | |||
1557 | 82 | 82 | ||
1558 | 83 | mclg::GBMClientBuffer buffer(drm_fd_handler, std::move(package), size, pf); | 83 | mclg::GBMClientBuffer buffer(drm_fd_handler, std::move(package), size, pf); |
1559 | 84 | 84 | ||
1561 | 85 | auto package_return = buffer.get_buffer_package(); | 85 | auto package_return = buffer.native_buffer_handle(); |
1562 | 86 | EXPECT_EQ(package_return->data_items, package_copy->data_items); | 86 | EXPECT_EQ(package_return->data_items, package_copy->data_items); |
1563 | 87 | EXPECT_EQ(package_return->fd_items, package_copy->fd_items); | 87 | EXPECT_EQ(package_return->fd_items, package_copy->fd_items); |
1564 | 88 | EXPECT_EQ(package_return->stride, package_copy->stride); | 88 | EXPECT_EQ(package_return->stride, package_copy->stride); |
1565 | 89 | 89 | ||
1566 | === modified file 'tests/unit-tests/client/test_aging_buffer.cpp' | |||
1567 | --- tests/unit-tests/client/test_aging_buffer.cpp 2013-04-24 05:22:20 +0000 | |||
1568 | +++ tests/unit-tests/client/test_aging_buffer.cpp 2013-05-09 15:25:39 +0000 | |||
1569 | @@ -51,12 +51,7 @@ | |||
1570 | 51 | exit(1); | 51 | exit(1); |
1571 | 52 | } | 52 | } |
1572 | 53 | 53 | ||
1579 | 54 | std::shared_ptr<MirBufferPackage> get_buffer_package() const | 54 | std::shared_ptr<MirNativeBuffer> native_buffer_handle() const |
1574 | 55 | { | ||
1575 | 56 | exit(1); | ||
1576 | 57 | } | ||
1577 | 58 | |||
1578 | 59 | MirNativeBuffer get_native_handle() | ||
1580 | 60 | { | 55 | { |
1581 | 61 | exit(1); | 56 | exit(1); |
1582 | 62 | } | 57 | } |
1583 | 63 | 58 | ||
1584 | === modified file 'tests/unit-tests/client/test_client_buffer_depository.cpp' | |||
1585 | --- tests/unit-tests/client/test_client_buffer_depository.cpp 2013-04-24 05:22:20 +0000 | |||
1586 | +++ tests/unit-tests/client/test_client_buffer_depository.cpp 2013-05-09 15:25:39 +0000 | |||
1587 | @@ -42,7 +42,7 @@ | |||
1588 | 42 | } | 42 | } |
1589 | 43 | 43 | ||
1590 | 44 | MOCK_METHOD0(Destroy, void()); | 44 | MOCK_METHOD0(Destroy, void()); |
1592 | 45 | virtual ~MockBuffer() | 45 | virtual ~MockBuffer() noexcept |
1593 | 46 | { | 46 | { |
1594 | 47 | Destroy(); | 47 | Destroy(); |
1595 | 48 | } | 48 | } |
1596 | @@ -52,8 +52,7 @@ | |||
1597 | 52 | MOCK_CONST_METHOD0(size, geom::Size()); | 52 | MOCK_CONST_METHOD0(size, geom::Size()); |
1598 | 53 | MOCK_CONST_METHOD0(stride, geom::Stride()); | 53 | MOCK_CONST_METHOD0(stride, geom::Stride()); |
1599 | 54 | MOCK_CONST_METHOD0(pixel_format, geom::PixelFormat()); | 54 | MOCK_CONST_METHOD0(pixel_format, geom::PixelFormat()); |
1602 | 55 | MOCK_CONST_METHOD0(get_buffer_package, std::shared_ptr<MirBufferPackage>()); | 55 | MOCK_CONST_METHOD0(native_buffer_handle, std::shared_ptr<MirNativeBuffer>()); |
1601 | 56 | MOCK_METHOD0(get_native_handle, MirNativeBuffer()); | ||
1603 | 57 | }; | 56 | }; |
1604 | 58 | 57 | ||
1605 | 59 | struct MockClientBufferFactory : public mcl::ClientBufferFactory | 58 | struct MockClientBufferFactory : public mcl::ClientBufferFactory |
1606 | 60 | 59 | ||
1607 | === modified file 'tests/unit-tests/client/test_client_mir_surface.cpp' | |||
1608 | --- tests/unit-tests/client/test_client_mir_surface.cpp 2013-05-01 23:30:06 +0000 | |||
1609 | +++ tests/unit-tests/client/test_client_mir_surface.cpp 2013-05-09 15:25:39 +0000 | |||
1610 | @@ -160,14 +160,11 @@ | |||
1611 | 160 | 160 | ||
1612 | 161 | struct MockBuffer : public mcl::ClientBuffer | 161 | struct MockBuffer : public mcl::ClientBuffer |
1613 | 162 | { | 162 | { |
1622 | 163 | explicit MockBuffer(std::shared_ptr<MirBufferPackage> const& contents) | 163 | MockBuffer() |
1623 | 164 | { | 164 | { |
1624 | 165 | using namespace testing; | 165 | } |
1625 | 166 | 166 | ~MockBuffer() noexcept | |
1626 | 167 | auto buffer_package = std::make_shared<MirBufferPackage>(); | 167 | { |
1619 | 168 | *buffer_package = *contents; | ||
1620 | 169 | ON_CALL(*this, get_buffer_package()) | ||
1621 | 170 | .WillByDefault(Return(buffer_package)); | ||
1627 | 171 | } | 168 | } |
1628 | 172 | 169 | ||
1629 | 173 | MOCK_METHOD0(secure_for_cpu_write, std::shared_ptr<mcl::MemoryRegion>()); | 170 | MOCK_METHOD0(secure_for_cpu_write, std::shared_ptr<mcl::MemoryRegion>()); |
1630 | @@ -177,8 +174,7 @@ | |||
1631 | 177 | MOCK_CONST_METHOD0(age, uint32_t()); | 174 | MOCK_CONST_METHOD0(age, uint32_t()); |
1632 | 178 | MOCK_METHOD0(increment_age, void()); | 175 | MOCK_METHOD0(increment_age, void()); |
1633 | 179 | MOCK_METHOD0(mark_as_submitted, void()); | 176 | MOCK_METHOD0(mark_as_submitted, void()); |
1636 | 180 | MOCK_CONST_METHOD0(get_buffer_package, std::shared_ptr<MirBufferPackage>()); | 177 | MOCK_CONST_METHOD0(native_buffer_handle, std::shared_ptr<MirNativeBuffer>()); |
1635 | 181 | MOCK_METHOD0(get_native_handle, MirNativeBuffer()); | ||
1637 | 182 | }; | 178 | }; |
1638 | 183 | 179 | ||
1639 | 184 | struct MockClientBufferFactory : public mcl::ClientBufferFactory | 180 | struct MockClientBufferFactory : public mcl::ClientBufferFactory |
1640 | @@ -187,11 +183,11 @@ | |||
1641 | 187 | { | 183 | { |
1642 | 188 | using namespace testing; | 184 | using namespace testing; |
1643 | 189 | 185 | ||
1645 | 190 | emptybuffer=std::make_shared<NiceMock<MockBuffer>>(std::make_shared<MirBufferPackage>()); | 186 | emptybuffer=std::make_shared<NiceMock<MockBuffer>>(); |
1646 | 191 | 187 | ||
1647 | 192 | ON_CALL(*this, create_buffer(_,_,_)) | 188 | ON_CALL(*this, create_buffer(_,_,_)) |
1648 | 193 | .WillByDefault(DoAll(SaveArg<0>(¤t_package), | 189 | .WillByDefault(DoAll(SaveArg<0>(¤t_package), |
1650 | 194 | InvokeWithoutArgs([this] () {this->current_buffer = std::make_shared<NiceMock<MockBuffer>>(current_package);}), | 190 | InvokeWithoutArgs([this] () {this->current_buffer = std::make_shared<NiceMock<MockBuffer>>();}), |
1651 | 195 | ReturnPointee(¤t_buffer))); | 191 | ReturnPointee(¤t_buffer))); |
1652 | 196 | } | 192 | } |
1653 | 197 | 193 | ||
1654 | @@ -204,9 +200,12 @@ | |||
1655 | 204 | std::shared_ptr<mcl::ClientBuffer> emptybuffer; | 200 | std::shared_ptr<mcl::ClientBuffer> emptybuffer; |
1656 | 205 | }; | 201 | }; |
1657 | 206 | 202 | ||
1658 | 207 | |||
1659 | 208 | struct StubClientPlatform : public mcl::ClientPlatform | 203 | struct StubClientPlatform : public mcl::ClientPlatform |
1660 | 209 | { | 204 | { |
1661 | 205 | MirPlatformType platform_type() const | ||
1662 | 206 | { | ||
1663 | 207 | return mir_platform_type_android; | ||
1664 | 208 | } | ||
1665 | 210 | std::shared_ptr<mcl::ClientBufferFactory> create_buffer_factory() | 209 | std::shared_ptr<mcl::ClientBufferFactory> create_buffer_factory() |
1666 | 211 | { | 210 | { |
1667 | 212 | return std::shared_ptr<MockClientBufferFactory>(); | 211 | return std::shared_ptr<MockClientBufferFactory>(); |
1668 | @@ -510,15 +509,13 @@ | |||
1669 | 510 | nullptr); | 509 | nullptr); |
1670 | 511 | auto wait_handle = surface->get_create_wait_handle(); | 510 | auto wait_handle = surface->get_create_wait_handle(); |
1671 | 512 | wait_handle->wait_for_result(); | 511 | wait_handle->wait_for_result(); |
1674 | 513 | 512 | Mock::VerifyAndClearExpectations(mock_buffer_factory.get()); | |
1673 | 514 | EXPECT_THAT(*surface->get_current_buffer_package(), BufferPackageMatches(mock_server_tool->server_package)); | ||
1675 | 515 | 513 | ||
1676 | 516 | EXPECT_CALL(*mock_buffer_factory, create_buffer(_,_,_)) | 514 | EXPECT_CALL(*mock_buffer_factory, create_buffer(_,_,_)) |
1677 | 517 | .Times(1); | 515 | .Times(1); |
1678 | 518 | auto buffer_wait_handle = surface->next_buffer(&empty_surface_callback, nullptr); | 516 | auto buffer_wait_handle = surface->next_buffer(&empty_surface_callback, nullptr); |
1679 | 519 | buffer_wait_handle->wait_for_result(); | 517 | buffer_wait_handle->wait_for_result(); |
1682 | 520 | 518 | Mock::VerifyAndClearExpectations(mock_buffer_factory.get()); | |
1681 | 521 | EXPECT_THAT(*surface->get_current_buffer_package(), BufferPackageMatches(mock_server_tool->server_package)); | ||
1683 | 522 | } | 519 | } |
1684 | 523 | 520 | ||
1685 | 524 | TEST_F(MirClientSurfaceTest, default_surface_type) | 521 | TEST_F(MirClientSurfaceTest, default_surface_type) |
1686 | @@ -589,14 +586,9 @@ | |||
1687 | 589 | void increment_age() {} | 586 | void increment_age() {} |
1688 | 590 | void mark_as_submitted() {} | 587 | void mark_as_submitted() {} |
1689 | 591 | 588 | ||
1698 | 592 | std::shared_ptr<MirBufferPackage> get_buffer_package() const | 589 | std::shared_ptr<MirNativeBuffer> native_buffer_handle() const |
1699 | 593 | { | 590 | { |
1700 | 594 | return std::shared_ptr<MirBufferPackage>(); | 591 | return std::shared_ptr<MirNativeBuffer>(); |
1693 | 595 | } | ||
1694 | 596 | |||
1695 | 597 | MirNativeBuffer get_native_handle() | ||
1696 | 598 | { | ||
1697 | 599 | return MirNativeBuffer(); | ||
1701 | 600 | } | 592 | } |
1702 | 601 | 593 | ||
1703 | 602 | geom::Size size_; | 594 | geom::Size size_; |
1704 | 603 | 595 | ||
1705 | === modified file 'tests/unit-tests/client/test_client_platform.cpp' | |||
1706 | --- tests/unit-tests/client/test_client_platform.cpp 2013-04-24 05:22:20 +0000 | |||
1707 | +++ tests/unit-tests/client/test_client_platform.cpp 2013-05-09 15:25:39 +0000 | |||
1708 | @@ -40,6 +40,20 @@ | |||
1709 | 40 | #endif | 40 | #endif |
1710 | 41 | }; | 41 | }; |
1711 | 42 | 42 | ||
1712 | 43 | TEST_F(ClientPlatformTest, platform_name) | ||
1713 | 44 | { | ||
1714 | 45 | mtd::MockClientContext context; | ||
1715 | 46 | mcl::NativeClientPlatformFactory factory; | ||
1716 | 47 | auto platform = factory.create_client_platform(&context); | ||
1717 | 48 | |||
1718 | 49 | #ifdef ANDROID | ||
1719 | 50 | auto type = mir_platform_type_android; | ||
1720 | 51 | #else | ||
1721 | 52 | auto type = mir_platform_type_gbm; | ||
1722 | 53 | #endif | ||
1723 | 54 | EXPECT_EQ(type, platform->platform_type()); | ||
1724 | 55 | } | ||
1725 | 56 | |||
1726 | 43 | TEST_F(ClientPlatformTest, platform_creates) | 57 | TEST_F(ClientPlatformTest, platform_creates) |
1727 | 44 | { | 58 | { |
1728 | 45 | mtd::MockClientContext context; | 59 | mtd::MockClientContext context; |
1729 | 46 | 60 | ||
1730 | === modified file 'tests/unit-tests/client/test_mir_connection.cpp' | |||
1731 | --- tests/unit-tests/client/test_mir_connection.cpp 2013-04-25 09:48:54 +0000 | |||
1732 | +++ tests/unit-tests/client/test_mir_connection.cpp 2013-05-09 15:25:39 +0000 | |||
1733 | @@ -80,6 +80,7 @@ | |||
1734 | 80 | .WillByDefault(Return(native_display)); | 80 | .WillByDefault(Return(native_display)); |
1735 | 81 | } | 81 | } |
1736 | 82 | 82 | ||
1737 | 83 | MOCK_CONST_METHOD0(platform_type, MirPlatformType()); | ||
1738 | 83 | MOCK_METHOD0(create_buffer_factory, std::shared_ptr<mcl::ClientBufferFactory>()); | 84 | MOCK_METHOD0(create_buffer_factory, std::shared_ptr<mcl::ClientBufferFactory>()); |
1739 | 84 | MOCK_METHOD1(create_egl_native_window, std::shared_ptr<EGLNativeWindowType>(mcl::ClientSurface*)); | 85 | MOCK_METHOD1(create_egl_native_window, std::shared_ptr<EGLNativeWindowType>(mcl::ClientSurface*)); |
1740 | 85 | MOCK_METHOD0(create_egl_native_display, std::shared_ptr<EGLNativeDisplayType>()); | 86 | MOCK_METHOD0(create_egl_native_display, std::shared_ptr<EGLNativeDisplayType>()); |
1741 | 86 | 87 | ||
1742 | === modified file 'tests/unit-tests/compositor/test_temporary_buffers.cpp' | |||
1743 | --- tests/unit-tests/compositor/test_temporary_buffers.cpp 2013-04-24 05:22:20 +0000 | |||
1744 | +++ tests/unit-tests/compositor/test_temporary_buffers.cpp 2013-05-09 15:25:39 +0000 | |||
1745 | @@ -166,3 +166,12 @@ | |||
1746 | 166 | 166 | ||
1747 | 167 | proxy_buffer.id(); | 167 | proxy_buffer.id(); |
1748 | 168 | } | 168 | } |
1749 | 169 | |||
1750 | 170 | TEST_F(TemporaryBuffersTest, base_test_native_buffer_handle) | ||
1751 | 171 | { | ||
1752 | 172 | TemporaryTestBuffer proxy_buffer(mock_buffer); | ||
1753 | 173 | EXPECT_CALL(*mock_buffer, native_buffer_handle()) | ||
1754 | 174 | .Times(1); | ||
1755 | 175 | |||
1756 | 176 | proxy_buffer.native_buffer_handle(); | ||
1757 | 177 | } | ||
1758 | 169 | 178 | ||
1759 | === modified file 'tests/unit-tests/graphics/android/test_fb_device.cpp' | |||
1760 | --- tests/unit-tests/graphics/android/test_fb_device.cpp 2013-04-24 05:22:20 +0000 | |||
1761 | +++ tests/unit-tests/graphics/android/test_fb_device.cpp 2013-05-09 15:25:39 +0000 | |||
1762 | @@ -17,7 +17,7 @@ | |||
1763 | 17 | */ | 17 | */ |
1764 | 18 | 18 | ||
1765 | 19 | #include "mir_test_doubles/mock_fb_hal_device.h" | 19 | #include "mir_test_doubles/mock_fb_hal_device.h" |
1767 | 20 | #include "mir_test_doubles/mock_android_buffer.h" | 20 | #include "mir_test_doubles/mock_buffer.h" |
1768 | 21 | #include "src/server/graphics/android/fb_device.h" | 21 | #include "src/server/graphics/android/fb_device.h" |
1769 | 22 | #include "mir_test/hw_mock.h" | 22 | #include "mir_test/hw_mock.h" |
1770 | 23 | 23 | ||
1771 | @@ -42,7 +42,7 @@ | |||
1772 | 42 | format = HAL_PIXEL_FORMAT_RGBA_8888; | 42 | format = HAL_PIXEL_FORMAT_RGBA_8888; |
1773 | 43 | 43 | ||
1774 | 44 | fb_hal_mock = std::make_shared<mtd::MockFBHalDevice>(width, height, format, fbnum); | 44 | fb_hal_mock = std::make_shared<mtd::MockFBHalDevice>(width, height, format, fbnum); |
1776 | 45 | mock_buffer = std::make_shared<NiceMock<mtd::MockAndroidBuffer>>(); | 45 | mock_buffer = std::make_shared<NiceMock<mtd::MockBuffer>>(); |
1777 | 46 | 46 | ||
1778 | 47 | dummy_buffer = std::make_shared<ANativeWindowBuffer>(); | 47 | dummy_buffer = std::make_shared<ANativeWindowBuffer>(); |
1779 | 48 | dummy_buffer->handle = (buffer_handle_t) 0x4893; | 48 | dummy_buffer->handle = (buffer_handle_t) 0x4893; |
1780 | @@ -52,7 +52,7 @@ | |||
1781 | 52 | 52 | ||
1782 | 53 | unsigned int width, height, format, fbnum; | 53 | unsigned int width, height, format, fbnum; |
1783 | 54 | std::shared_ptr<mtd::MockFBHalDevice> fb_hal_mock; | 54 | std::shared_ptr<mtd::MockFBHalDevice> fb_hal_mock; |
1785 | 55 | std::shared_ptr<mtd::MockAndroidBuffer> mock_buffer; | 55 | std::shared_ptr<mtd::MockBuffer> mock_buffer; |
1786 | 56 | std::shared_ptr<ANativeWindowBuffer> dummy_buffer; | 56 | std::shared_ptr<ANativeWindowBuffer> dummy_buffer; |
1787 | 57 | mt::HardwareAccessMock hw_access_mock; | 57 | mt::HardwareAccessMock hw_access_mock; |
1788 | 58 | }; | 58 | }; |
1789 | 59 | 59 | ||
1790 | === modified file 'tests/unit-tests/graphics/android/test_fb_simple_swapper.cpp' | |||
1791 | --- tests/unit-tests/graphics/android/test_fb_simple_swapper.cpp 2013-04-24 05:22:20 +0000 | |||
1792 | +++ tests/unit-tests/graphics/android/test_fb_simple_swapper.cpp 2013-05-09 15:25:39 +0000 | |||
1793 | @@ -17,7 +17,7 @@ | |||
1794 | 17 | */ | 17 | */ |
1795 | 18 | 18 | ||
1796 | 19 | #include "src/server/graphics/android/fb_simple_swapper.h" | 19 | #include "src/server/graphics/android/fb_simple_swapper.h" |
1798 | 20 | #include "mir_test_doubles/mock_android_buffer.h" | 20 | #include "mir_test_doubles/mock_buffer.h" |
1799 | 21 | 21 | ||
1800 | 22 | #include <future> | 22 | #include <future> |
1801 | 23 | #include <initializer_list> | 23 | #include <initializer_list> |
1802 | @@ -34,19 +34,19 @@ | |||
1803 | 34 | public: | 34 | public: |
1804 | 35 | virtual void SetUp() | 35 | virtual void SetUp() |
1805 | 36 | { | 36 | { |
1809 | 37 | buffer1 = std::make_shared<mtd::MockAndroidBuffer>(); | 37 | buffer1 = std::make_shared<mtd::MockBuffer>(); |
1810 | 38 | buffer2 = std::make_shared<mtd::MockAndroidBuffer>(); | 38 | buffer2 = std::make_shared<mtd::MockBuffer>(); |
1811 | 39 | buffer3 = std::make_shared<mtd::MockAndroidBuffer>(); | 39 | buffer3 = std::make_shared<mtd::MockBuffer>(); |
1812 | 40 | } | 40 | } |
1813 | 41 | 41 | ||
1817 | 42 | std::shared_ptr<mga::AndroidBuffer> buffer1; | 42 | std::shared_ptr<mc::Buffer> buffer1; |
1818 | 43 | std::shared_ptr<mga::AndroidBuffer> buffer2; | 43 | std::shared_ptr<mc::Buffer> buffer2; |
1819 | 44 | std::shared_ptr<mga::AndroidBuffer> buffer3; | 44 | std::shared_ptr<mc::Buffer> buffer3; |
1820 | 45 | }; | 45 | }; |
1821 | 46 | 46 | ||
1822 | 47 | TEST_F(FBSimpleSwapperTest, simple_swaps_returns_valid) | 47 | TEST_F(FBSimpleSwapperTest, simple_swaps_returns_valid) |
1823 | 48 | { | 48 | { |
1825 | 49 | std::initializer_list<std::shared_ptr<mga::AndroidBuffer>> double_list{buffer1, buffer2}; | 49 | std::initializer_list<std::shared_ptr<mc::Buffer>> double_list{buffer1, buffer2}; |
1826 | 50 | mga::FBSimpleSwapper fb_swapper(double_list); | 50 | mga::FBSimpleSwapper fb_swapper(double_list); |
1827 | 51 | 51 | ||
1828 | 52 | auto test_buffer = fb_swapper.compositor_acquire(); | 52 | auto test_buffer = fb_swapper.compositor_acquire(); |
1829 | @@ -56,7 +56,7 @@ | |||
1830 | 56 | 56 | ||
1831 | 57 | TEST_F(FBSimpleSwapperTest, simple_swaps_return_aba_pattern) | 57 | TEST_F(FBSimpleSwapperTest, simple_swaps_return_aba_pattern) |
1832 | 58 | { | 58 | { |
1834 | 59 | std::initializer_list<std::shared_ptr<mga::AndroidBuffer>> double_list{buffer1, buffer2}; | 59 | std::initializer_list<std::shared_ptr<mc::Buffer>> double_list{buffer1, buffer2}; |
1835 | 60 | mga::FBSimpleSwapper fb_swapper(double_list); | 60 | mga::FBSimpleSwapper fb_swapper(double_list); |
1836 | 61 | 61 | ||
1837 | 62 | auto test_buffer_1 = fb_swapper.compositor_acquire(); | 62 | auto test_buffer_1 = fb_swapper.compositor_acquire(); |
1838 | @@ -74,7 +74,7 @@ | |||
1839 | 74 | 74 | ||
1840 | 75 | TEST_F(FBSimpleSwapperTest, triple_swaps_return_abcab_pattern) | 75 | TEST_F(FBSimpleSwapperTest, triple_swaps_return_abcab_pattern) |
1841 | 76 | { | 76 | { |
1843 | 77 | std::initializer_list<std::shared_ptr<mga::AndroidBuffer>> triple_list{buffer1, buffer2, buffer3}; | 77 | std::initializer_list<std::shared_ptr<mc::Buffer>> triple_list{buffer1, buffer2, buffer3}; |
1844 | 78 | mga::FBSimpleSwapper fb_swapper(triple_list); | 78 | mga::FBSimpleSwapper fb_swapper(triple_list); |
1845 | 79 | 79 | ||
1846 | 80 | auto test_buffer_1 = fb_swapper.compositor_acquire(); | 80 | auto test_buffer_1 = fb_swapper.compositor_acquire(); |
1847 | @@ -103,7 +103,7 @@ | |||
1848 | 103 | 103 | ||
1849 | 104 | TEST_F(FBSimpleSwapperTest, synctest) | 104 | TEST_F(FBSimpleSwapperTest, synctest) |
1850 | 105 | { | 105 | { |
1852 | 106 | std::vector<std::shared_ptr<mga::AndroidBuffer>> test_buffers{buffer1, buffer2}; | 106 | std::vector<std::shared_ptr<mc::Buffer>> test_buffers{buffer1, buffer2}; |
1853 | 107 | mga::FBSimpleSwapper fb_swapper(test_buffers); | 107 | mga::FBSimpleSwapper fb_swapper(test_buffers); |
1854 | 108 | 108 | ||
1855 | 109 | std::vector<std::shared_ptr<mc::Buffer>> blist; | 109 | std::vector<std::shared_ptr<mc::Buffer>> blist; |
1856 | 110 | 110 | ||
1857 | === modified file 'tests/unit-tests/graphics/android/test_framebuffer_factory.cpp' | |||
1858 | --- tests/unit-tests/graphics/android/test_framebuffer_factory.cpp 2013-04-24 05:22:20 +0000 | |||
1859 | +++ tests/unit-tests/graphics/android/test_framebuffer_factory.cpp 2013-05-09 15:25:39 +0000 | |||
1860 | @@ -41,7 +41,7 @@ | |||
1861 | 41 | { | 41 | { |
1862 | 42 | public: | 42 | public: |
1863 | 43 | MOCK_METHOD1(alloc_buffer, std::shared_ptr<mc::Buffer>(mc::BufferProperties const&)); | 43 | MOCK_METHOD1(alloc_buffer, std::shared_ptr<mc::Buffer>(mc::BufferProperties const&)); |
1865 | 44 | MOCK_METHOD3(alloc_buffer_platform, std::shared_ptr<mga::AndroidBuffer>(geom::Size, geom::PixelFormat, mga::BufferUsage)); | 44 | MOCK_METHOD3(alloc_buffer_platform, std::shared_ptr<mga::Buffer>(geom::Size, geom::PixelFormat, mga::BufferUsage)); |
1866 | 45 | MOCK_METHOD0(supported_pixel_formats, std::vector<geom::PixelFormat>()); | 45 | MOCK_METHOD0(supported_pixel_formats, std::vector<geom::PixelFormat>()); |
1867 | 46 | }; | 46 | }; |
1868 | 47 | } | 47 | } |
1869 | @@ -62,7 +62,7 @@ | |||
1870 | 62 | ON_CALL(*mock_display_info_provider, number_of_framebuffers_available()) | 62 | ON_CALL(*mock_display_info_provider, number_of_framebuffers_available()) |
1871 | 63 | .WillByDefault(Return(fake_fb_num)); | 63 | .WillByDefault(Return(fake_fb_num)); |
1872 | 64 | ON_CALL(*mock_buffer_allocator, alloc_buffer_platform(_,_,_)) | 64 | ON_CALL(*mock_buffer_allocator, alloc_buffer_platform(_,_,_)) |
1874 | 65 | .WillByDefault(Return(std::shared_ptr<mga::AndroidBuffer>())); | 65 | .WillByDefault(Return(std::shared_ptr<mga::Buffer>())); |
1875 | 66 | } | 66 | } |
1876 | 67 | 67 | ||
1877 | 68 | std::shared_ptr<MockAndroidGraphicBufferAllocator> mock_buffer_allocator; | 68 | std::shared_ptr<MockAndroidGraphicBufferAllocator> mock_buffer_allocator; |
1878 | 69 | 69 | ||
1879 | === modified file 'tests/unit-tests/graphics/android/test_hwc10_device.cpp' | |||
1880 | --- tests/unit-tests/graphics/android/test_hwc10_device.cpp 2013-04-22 21:33:40 +0000 | |||
1881 | +++ tests/unit-tests/graphics/android/test_hwc10_device.cpp 2013-05-09 15:25:39 +0000 | |||
1882 | @@ -20,9 +20,10 @@ | |||
1883 | 20 | #include "mir_test_doubles/mock_display_support_provider.h" | 20 | #include "mir_test_doubles/mock_display_support_provider.h" |
1884 | 21 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" | 21 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" |
1885 | 22 | #include "mir_test_doubles/mock_hwc_organizer.h" | 22 | #include "mir_test_doubles/mock_hwc_organizer.h" |
1887 | 23 | #include "mir_test_doubles/mock_android_buffer.h" | 23 | #include "mir_test_doubles/mock_buffer.h" |
1888 | 24 | #include <gtest/gtest.h> | 24 | #include <gtest/gtest.h> |
1889 | 25 | 25 | ||
1890 | 26 | namespace mc=mir::compositor; | ||
1891 | 26 | namespace mga=mir::graphics::android; | 27 | namespace mga=mir::graphics::android; |
1892 | 27 | namespace mtd=mir::test::doubles; | 28 | namespace mtd=mir::test::doubles; |
1893 | 28 | namespace geom=mir::geometry; | 29 | namespace geom=mir::geometry; |
1894 | @@ -85,7 +86,7 @@ | |||
1895 | 85 | 86 | ||
1896 | 86 | TEST_F(HWC10Device, hwc10_set_next_frontbuffer) | 87 | TEST_F(HWC10Device, hwc10_set_next_frontbuffer) |
1897 | 87 | { | 88 | { |
1899 | 88 | std::shared_ptr<mga::AndroidBuffer> mock_buffer = std::make_shared<mtd::MockAndroidBuffer>(); | 89 | std::shared_ptr<mc::Buffer> mock_buffer = std::make_shared<mtd::MockBuffer>(); |
1900 | 89 | EXPECT_CALL(*mock_fbdev, set_next_frontbuffer(mock_buffer)) | 90 | EXPECT_CALL(*mock_fbdev, set_next_frontbuffer(mock_buffer)) |
1901 | 90 | .Times(1); | 91 | .Times(1); |
1902 | 91 | 92 | ||
1903 | 92 | 93 | ||
1904 | === modified file 'tests/unit-tests/graphics/android/test_hwc11_device.cpp' | |||
1905 | --- tests/unit-tests/graphics/android/test_hwc11_device.cpp 2013-04-20 00:08:22 +0000 | |||
1906 | +++ tests/unit-tests/graphics/android/test_hwc11_device.cpp 2013-05-09 15:25:39 +0000 | |||
1907 | @@ -21,10 +21,11 @@ | |||
1908 | 21 | #include "mir_test_doubles/mock_display_support_provider.h" | 21 | #include "mir_test_doubles/mock_display_support_provider.h" |
1909 | 22 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" | 22 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" |
1910 | 23 | #include "mir_test_doubles/mock_hwc_organizer.h" | 23 | #include "mir_test_doubles/mock_hwc_organizer.h" |
1912 | 24 | #include "mir_test_doubles/mock_android_buffer.h" | 24 | #include "mir_test_doubles/mock_buffer.h" |
1913 | 25 | #include "mir_test/egl_mock.h" | 25 | #include "mir_test/egl_mock.h" |
1914 | 26 | #include <gtest/gtest.h> | 26 | #include <gtest/gtest.h> |
1915 | 27 | 27 | ||
1916 | 28 | namespace mc=mir::compositor; | ||
1917 | 28 | namespace mga=mir::graphics::android; | 29 | namespace mga=mir::graphics::android; |
1918 | 29 | namespace mtd=mir::test::doubles; | 30 | namespace mtd=mir::test::doubles; |
1919 | 30 | 31 | ||
1920 | @@ -223,7 +224,7 @@ | |||
1921 | 223 | 224 | ||
1922 | 224 | TEST_F(HWC11Device, hwc_device_set_next_frontbuffer_adds_to_layerlist) | 225 | TEST_F(HWC11Device, hwc_device_set_next_frontbuffer_adds_to_layerlist) |
1923 | 225 | { | 226 | { |
1925 | 226 | std::shared_ptr<mga::AndroidBuffer> mock_buffer = std::make_shared<mtd::MockAndroidBuffer>(); | 227 | std::shared_ptr<mc::Buffer> mock_buffer = std::make_shared<mtd::MockBuffer>(); |
1926 | 227 | EXPECT_CALL(*this->mock_organizer, set_fb_target(mock_buffer)) | 228 | EXPECT_CALL(*this->mock_organizer, set_fb_target(mock_buffer)) |
1927 | 228 | .Times(1); | 229 | .Times(1); |
1928 | 229 | 230 | ||
1929 | @@ -233,7 +234,7 @@ | |||
1930 | 233 | 234 | ||
1931 | 234 | TEST_F(HWC11Device, hwc_device_set_next_frontbuffer_posts) | 235 | TEST_F(HWC11Device, hwc_device_set_next_frontbuffer_posts) |
1932 | 235 | { | 236 | { |
1934 | 236 | std::shared_ptr<mga::AndroidBuffer> mock_buffer = std::make_shared<mtd::MockAndroidBuffer>(); | 237 | std::shared_ptr<mc::Buffer> mock_buffer = std::make_shared<mtd::MockBuffer>(); |
1935 | 237 | EXPECT_CALL(*this->mock_display_support_provider, set_next_frontbuffer(mock_buffer)) | 238 | EXPECT_CALL(*this->mock_display_support_provider, set_next_frontbuffer(mock_buffer)) |
1936 | 238 | .Times(1); | 239 | .Times(1); |
1937 | 239 | 240 | ||
1938 | 240 | 241 | ||
1939 | === modified file 'tests/unit-tests/graphics/android/test_hwc_device.cpp' | |||
1940 | --- tests/unit-tests/graphics/android/test_hwc_device.cpp 2013-04-24 05:22:20 +0000 | |||
1941 | +++ tests/unit-tests/graphics/android/test_hwc_device.cpp 2013-05-09 15:25:39 +0000 | |||
1942 | @@ -21,7 +21,7 @@ | |||
1943 | 21 | #include "src/server/graphics/android/hwc_layerlist.h" | 21 | #include "src/server/graphics/android/hwc_layerlist.h" |
1944 | 22 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" | 22 | #include "mir_test_doubles/mock_hwc_composer_device_1.h" |
1945 | 23 | #include "mir_test_doubles/mock_hwc_organizer.h" | 23 | #include "mir_test_doubles/mock_hwc_organizer.h" |
1947 | 24 | #include "mir_test_doubles/mock_android_buffer.h" | 24 | #include "mir_test_doubles/mock_buffer.h" |
1948 | 25 | #include "mir_test_doubles/mock_display_support_provider.h" | 25 | #include "mir_test_doubles/mock_display_support_provider.h" |
1949 | 26 | 26 | ||
1950 | 27 | #include <thread> | 27 | #include <thread> |
1951 | 28 | 28 | ||
1952 | === modified file 'tests/unit-tests/graphics/android/test_hwc_layerlist.cpp' | |||
1953 | --- tests/unit-tests/graphics/android/test_hwc_layerlist.cpp 2013-04-17 00:22:29 +0000 | |||
1954 | +++ tests/unit-tests/graphics/android/test_hwc_layerlist.cpp 2013-05-09 15:25:39 +0000 | |||
1955 | @@ -17,7 +17,7 @@ | |||
1956 | 17 | */ | 17 | */ |
1957 | 18 | 18 | ||
1958 | 19 | #include "src/server/graphics/android/hwc_layerlist.h" | 19 | #include "src/server/graphics/android/hwc_layerlist.h" |
1960 | 20 | #include "mir_test_doubles/mock_android_buffer.h" | 20 | #include "mir_test_doubles/mock_buffer.h" |
1961 | 21 | #include "hwc_struct_helper-inl.h" | 21 | #include "hwc_struct_helper-inl.h" |
1962 | 22 | #include <gtest/gtest.h> | 22 | #include <gtest/gtest.h> |
1963 | 23 | 23 | ||
1964 | @@ -41,7 +41,7 @@ | |||
1965 | 41 | stub_handle_1 = std::make_shared<ANativeWindowBuffer>(); | 41 | stub_handle_1 = std::make_shared<ANativeWindowBuffer>(); |
1966 | 42 | stub_handle_2 = std::make_shared<ANativeWindowBuffer>(); | 42 | stub_handle_2 = std::make_shared<ANativeWindowBuffer>(); |
1967 | 43 | 43 | ||
1969 | 44 | mock_buffer = std::make_shared<NiceMock<mtd::MockAndroidBuffer>>(); | 44 | mock_buffer = std::make_shared<NiceMock<mtd::MockBuffer>>(); |
1970 | 45 | ON_CALL(*mock_buffer, native_buffer_handle()) | 45 | ON_CALL(*mock_buffer, native_buffer_handle()) |
1971 | 46 | .WillByDefault(Return(stub_handle_1)); | 46 | .WillByDefault(Return(stub_handle_1)); |
1972 | 47 | ON_CALL(*mock_buffer, size()) | 47 | ON_CALL(*mock_buffer, size()) |
1973 | @@ -55,7 +55,7 @@ | |||
1974 | 55 | 55 | ||
1975 | 56 | std::shared_ptr<ANativeWindowBuffer> stub_handle_1; | 56 | std::shared_ptr<ANativeWindowBuffer> stub_handle_1; |
1976 | 57 | std::shared_ptr<ANativeWindowBuffer> stub_handle_2; | 57 | std::shared_ptr<ANativeWindowBuffer> stub_handle_2; |
1978 | 58 | std::shared_ptr<mtd::MockAndroidBuffer> mock_buffer; | 58 | std::shared_ptr<mtd::MockBuffer> mock_buffer; |
1979 | 59 | }; | 59 | }; |
1980 | 60 | 60 | ||
1981 | 61 | TEST(HWCLayerDeepCopy, hwc_layer) | 61 | TEST(HWCLayerDeepCopy, hwc_layer) |
1982 | 62 | 62 | ||
1983 | === modified file 'tests/unit-tests/graphics/android/test_server_interpreter.cpp' | |||
1984 | --- tests/unit-tests/graphics/android/test_server_interpreter.cpp 2013-04-24 05:22:20 +0000 | |||
1985 | +++ tests/unit-tests/graphics/android/test_server_interpreter.cpp 2013-05-09 15:25:39 +0000 | |||
1986 | @@ -20,7 +20,7 @@ | |||
1987 | 20 | #include "src/server/graphics/android/fb_swapper.h" | 20 | #include "src/server/graphics/android/fb_swapper.h" |
1988 | 21 | 21 | ||
1989 | 22 | #include "mir_test_doubles/mock_display_support_provider.h" | 22 | #include "mir_test_doubles/mock_display_support_provider.h" |
1991 | 23 | #include "mir_test_doubles/mock_android_buffer.h" | 23 | #include "mir_test_doubles/mock_buffer.h" |
1992 | 24 | 24 | ||
1993 | 25 | #include <gtest/gtest.h> | 25 | #include <gtest/gtest.h> |
1994 | 26 | #include <gmock/gmock.h> | 26 | #include <gmock/gmock.h> |
1995 | @@ -43,17 +43,17 @@ | |||
1996 | 43 | struct MockFBSwapper : public mga::FBSwapper | 43 | struct MockFBSwapper : public mga::FBSwapper |
1997 | 44 | { | 44 | { |
1998 | 45 | ~MockFBSwapper() noexcept {} | 45 | ~MockFBSwapper() noexcept {} |
2001 | 46 | MOCK_METHOD0(compositor_acquire, std::shared_ptr<mga::AndroidBuffer>()); | 46 | MOCK_METHOD0(compositor_acquire, std::shared_ptr<mc::Buffer>()); |
2002 | 47 | MOCK_METHOD1(compositor_release, void(std::shared_ptr<mga::AndroidBuffer> const& released_buffer)); | 47 | MOCK_METHOD1(compositor_release, void(std::shared_ptr<mc::Buffer> const& released_buffer)); |
2003 | 48 | }; | 48 | }; |
2004 | 49 | struct ServerRenderWindowTest : public ::testing::Test | 49 | struct ServerRenderWindowTest : public ::testing::Test |
2005 | 50 | { | 50 | { |
2006 | 51 | virtual void SetUp() | 51 | virtual void SetUp() |
2007 | 52 | { | 52 | { |
2008 | 53 | using namespace testing; | 53 | using namespace testing; |
2012 | 54 | mock_buffer1 = std::make_shared<NiceMock<mtd::MockAndroidBuffer>>(); | 54 | mock_buffer1 = std::make_shared<NiceMock<mtd::MockBuffer>>(); |
2013 | 55 | mock_buffer2 = std::make_shared<NiceMock<mtd::MockAndroidBuffer>>(); | 55 | mock_buffer2 = std::make_shared<NiceMock<mtd::MockBuffer>>(); |
2014 | 56 | mock_buffer3 = std::make_shared<NiceMock<mtd::MockAndroidBuffer>>(); | 56 | mock_buffer3 = std::make_shared<NiceMock<mtd::MockBuffer>>(); |
2015 | 57 | mock_swapper = std::make_shared<NiceMock<MockFBSwapper>>(); | 57 | mock_swapper = std::make_shared<NiceMock<MockFBSwapper>>(); |
2016 | 58 | mock_display_poster = std::make_shared<NiceMock<mtd::MockDisplaySupportProvider>>(); | 58 | mock_display_poster = std::make_shared<NiceMock<mtd::MockDisplaySupportProvider>>(); |
2017 | 59 | ON_CALL(*mock_display_poster, display_format()) | 59 | ON_CALL(*mock_display_poster, display_format()) |
2018 | @@ -61,9 +61,9 @@ | |||
2019 | 61 | stub_sync = std::make_shared<StubFence>(); | 61 | stub_sync = std::make_shared<StubFence>(); |
2020 | 62 | } | 62 | } |
2021 | 63 | 63 | ||
2025 | 64 | std::shared_ptr<mtd::MockAndroidBuffer> mock_buffer1; | 64 | std::shared_ptr<mtd::MockBuffer> mock_buffer1; |
2026 | 65 | std::shared_ptr<mtd::MockAndroidBuffer> mock_buffer2; | 65 | std::shared_ptr<mtd::MockBuffer> mock_buffer2; |
2027 | 66 | std::shared_ptr<mtd::MockAndroidBuffer> mock_buffer3; | 66 | std::shared_ptr<mtd::MockBuffer> mock_buffer3; |
2028 | 67 | std::shared_ptr<MockFBSwapper> mock_swapper; | 67 | std::shared_ptr<MockFBSwapper> mock_swapper; |
2029 | 68 | std::shared_ptr<mtd::MockDisplaySupportProvider> mock_display_poster; | 68 | std::shared_ptr<mtd::MockDisplaySupportProvider> mock_display_poster; |
2030 | 69 | std::shared_ptr<StubFence> stub_sync; | 69 | std::shared_ptr<StubFence> stub_sync; |
2031 | @@ -106,7 +106,7 @@ | |||
2032 | 106 | render_window.driver_requests_buffer(); | 106 | render_window.driver_requests_buffer(); |
2033 | 107 | testing::Mock::VerifyAndClearExpectations(mock_swapper.get()); | 107 | testing::Mock::VerifyAndClearExpectations(mock_swapper.get()); |
2034 | 108 | 108 | ||
2036 | 109 | std::shared_ptr<mga::AndroidBuffer> buf1 = mock_buffer1; | 109 | std::shared_ptr<mc::Buffer> buf1 = mock_buffer1; |
2037 | 110 | EXPECT_CALL(*mock_swapper, compositor_release(buf1)) | 110 | EXPECT_CALL(*mock_swapper, compositor_release(buf1)) |
2038 | 111 | .Times(1); | 111 | .Times(1); |
2039 | 112 | EXPECT_CALL(*stub_sync, wait()) | 112 | EXPECT_CALL(*stub_sync, wait()) |
2040 | @@ -147,9 +147,9 @@ | |||
2041 | 147 | auto handle3 = render_window.driver_requests_buffer(); | 147 | auto handle3 = render_window.driver_requests_buffer(); |
2042 | 148 | testing::Mock::VerifyAndClearExpectations(mock_swapper.get()); | 148 | testing::Mock::VerifyAndClearExpectations(mock_swapper.get()); |
2043 | 149 | 149 | ||
2047 | 150 | std::shared_ptr<mga::AndroidBuffer> buf1 = mock_buffer1; | 150 | std::shared_ptr<mc::Buffer> buf1 = mock_buffer1; |
2048 | 151 | std::shared_ptr<mga::AndroidBuffer> buf2 = mock_buffer2; | 151 | std::shared_ptr<mc::Buffer> buf2 = mock_buffer2; |
2049 | 152 | std::shared_ptr<mga::AndroidBuffer> buf3 = mock_buffer3; | 152 | std::shared_ptr<mc::Buffer> buf3 = mock_buffer3; |
2050 | 153 | EXPECT_CALL(*mock_swapper, compositor_release(buf1)) | 153 | EXPECT_CALL(*mock_swapper, compositor_release(buf1)) |
2051 | 154 | .Times(1); | 154 | .Times(1); |
2052 | 155 | EXPECT_CALL(*mock_swapper, compositor_release(buf2)) | 155 | EXPECT_CALL(*mock_swapper, compositor_release(buf2)) |
2053 | @@ -183,13 +183,17 @@ | |||
2054 | 183 | using namespace testing; | 183 | using namespace testing; |
2055 | 184 | mga::ServerRenderWindow render_window(mock_swapper, mock_display_poster); | 184 | mga::ServerRenderWindow render_window(mock_swapper, mock_display_poster); |
2056 | 185 | 185 | ||
2057 | 186 | auto stub_anw = std::make_shared<ANativeWindowBuffer>(); | ||
2058 | 186 | mc::BufferID id{442}, returned_id; | 187 | mc::BufferID id{442}, returned_id; |
2059 | 187 | EXPECT_CALL(*mock_swapper, compositor_acquire()) | 188 | EXPECT_CALL(*mock_swapper, compositor_acquire()) |
2060 | 188 | .Times(1) | 189 | .Times(1) |
2061 | 189 | .WillOnce(Return(mock_buffer1)); | 190 | .WillOnce(Return(mock_buffer1)); |
2062 | 190 | EXPECT_CALL(*mock_swapper, compositor_release(_)) | 191 | EXPECT_CALL(*mock_swapper, compositor_release(_)) |
2063 | 191 | .Times(1); | 192 | .Times(1); |
2065 | 192 | std::shared_ptr<mga::AndroidBuffer> buf1 = mock_buffer1; | 193 | std::shared_ptr<mc::Buffer> buf1 = mock_buffer1; |
2066 | 194 | EXPECT_CALL(*mock_buffer1, native_buffer_handle()) | ||
2067 | 195 | .Times(1) | ||
2068 | 196 | .WillOnce(Return(stub_anw)); | ||
2069 | 193 | EXPECT_CALL(*mock_display_poster, set_next_frontbuffer(buf1)) | 197 | EXPECT_CALL(*mock_display_poster, set_next_frontbuffer(buf1)) |
2070 | 194 | .Times(1); | 198 | .Times(1); |
2071 | 195 | 199 |
an interesting way that this branch manifested itself was that it showed that mir_surface_ get_current_ buffer( ) always returned the MirBufferPackage, which is the GBM platform's native type. This branch adds a new function to the client api, mir_surface_ get_platform_ type, which allows the user of mir_surface_ get_current_ buffer( ) to interpret the buffer they get from this function correctly.
This is really only used by xmir at the moment, so I'm working on updating xmir to support the api change