@@ -69,6 +69,11 @@ use surfman::SurfaceInfo;
69
69
use surfman:: SurfaceType ;
70
70
use surfman_chains:: SwapChains ;
71
71
use surfman_chains_api:: SwapChainsAPI ;
72
+ use webrender_api:: {
73
+ units:: DeviceIntSize , DirtyRect , DocumentId , ExternalImageData , ExternalImageId ,
74
+ ExternalImageType , ImageData , ImageDescriptor , ImageDescriptorFlags , ImageFormat , ImageKey ,
75
+ RenderApi , RenderApiSender , TextureTarget , Transaction ,
76
+ } ;
72
77
use webrender_traits:: { WebrenderExternalImageRegistry , WebrenderImageHandlerType } ;
73
78
use webxr:: SurfmanGL as WebXRSurfman ;
74
79
use webxr_api:: ContextId as WebXRContextId ;
@@ -229,9 +234,9 @@ impl Default for GLState {
229
234
pub ( crate ) struct WebGLThread {
230
235
/// The GPU device.
231
236
device : Device ,
232
- /// Channel used to generate/update or delete `webrender_api:: ImageKey`s.
233
- webrender_api : webrender_api :: RenderApi ,
234
- webrender_doc : webrender_api :: DocumentId ,
237
+ /// Channel used to generate/update or delete `ImageKey`s.
238
+ webrender_api : RenderApi ,
239
+ webrender_doc : DocumentId ,
235
240
/// Map of live WebGLContexts.
236
241
contexts : FnvHashMap < WebGLContextId , GLContextData > ,
237
242
/// Cached information for WebGLContexts.
@@ -255,8 +260,8 @@ pub(crate) struct WebGLThread {
255
260
256
261
/// The data required to initialize an instance of the WebGLThread type.
257
262
pub ( crate ) struct WebGLThreadInit {
258
- pub webrender_api_sender : webrender_api :: RenderApiSender ,
259
- pub webrender_doc : webrender_api :: DocumentId ,
263
+ pub webrender_api_sender : RenderApiSender ,
264
+ pub webrender_doc : DocumentId ,
260
265
pub external_images : Arc < Mutex < WebrenderExternalImageRegistry > > ,
261
266
pub sender : WebGLSender < WebGLMsg > ,
262
267
pub receiver : WebGLReceiver < WebGLMsg > ,
@@ -744,7 +749,7 @@ impl WebGLThread {
744
749
fn remove_webgl_context ( & mut self , context_id : WebGLContextId ) {
745
750
// Release webrender image keys.
746
751
if let Some ( info) = self . cached_context_info . remove ( & context_id) {
747
- let mut txn = webrender_api :: Transaction :: new ( ) ;
752
+ let mut txn = Transaction :: new ( ) ;
748
753
txn. delete_image ( info. image_key ) ;
749
754
self . webrender_api . send_transaction ( self . webrender_doc , txn)
750
755
}
@@ -923,66 +928,63 @@ impl WebGLThread {
923
928
924
929
/// Creates a `webrender_api::ImageKey` that uses shared textures.
925
930
fn create_wr_external_image (
926
- webrender_api : & mut webrender_api :: RenderApi ,
927
- webrender_doc : webrender_api :: DocumentId ,
931
+ webrender_api : & mut RenderApi ,
932
+ webrender_doc : DocumentId ,
928
933
size : Size2D < i32 > ,
929
934
alpha : bool ,
930
935
context_id : WebGLContextId ,
931
- target : webrender_api :: TextureTarget ,
932
- ) -> webrender_api :: ImageKey {
936
+ target : TextureTarget ,
937
+ ) -> ImageKey {
933
938
let descriptor = Self :: image_descriptor ( size, alpha) ;
934
939
let data = Self :: external_image_data ( context_id, target) ;
935
940
936
941
let image_key = webrender_api. generate_image_key ( ) ;
937
- let mut txn = webrender_api :: Transaction :: new ( ) ;
942
+ let mut txn = Transaction :: new ( ) ;
938
943
txn. add_image ( image_key, descriptor, data, None ) ;
939
944
webrender_api. send_transaction ( webrender_doc, txn) ;
940
945
941
946
image_key
942
947
}
943
948
944
- /// Updates a `webrender_api:: ImageKey` that uses shared textures.
949
+ /// Updates a `ImageKey` that uses shared textures.
945
950
fn update_wr_external_image (
946
- webrender_api : & mut webrender_api :: RenderApi ,
947
- webrender_doc : webrender_api :: DocumentId ,
951
+ webrender_api : & mut RenderApi ,
952
+ webrender_doc : DocumentId ,
948
953
size : Size2D < i32 > ,
949
954
alpha : bool ,
950
955
context_id : WebGLContextId ,
951
- image_key : webrender_api :: ImageKey ,
952
- target : webrender_api :: TextureTarget ,
956
+ image_key : ImageKey ,
957
+ target : TextureTarget ,
953
958
) {
954
959
let descriptor = Self :: image_descriptor ( size, alpha) ;
955
960
let data = Self :: external_image_data ( context_id, target) ;
956
961
957
- let mut txn = webrender_api :: Transaction :: new ( ) ;
958
- txn. update_image ( image_key, descriptor, data, & webrender_api :: DirtyRect :: All ) ;
962
+ let mut txn = Transaction :: new ( ) ;
963
+ txn. update_image ( image_key, descriptor, data, & DirtyRect :: All ) ;
959
964
webrender_api. send_transaction ( webrender_doc, txn) ;
960
965
}
961
966
962
- /// Helper function to create a `webrender_api:: ImageDescriptor`.
963
- fn image_descriptor ( size : Size2D < i32 > , alpha : bool ) -> webrender_api :: ImageDescriptor {
964
- let mut flags = webrender_api :: ImageDescriptorFlags :: empty ( ) ;
965
- flags. set ( webrender_api :: ImageDescriptorFlags :: IS_OPAQUE , !alpha) ;
966
- webrender_api :: ImageDescriptor {
967
- size : webrender_api :: units :: DeviceIntSize :: new ( size. width , size. height ) ,
967
+ /// Helper function to create a `ImageDescriptor`.
968
+ fn image_descriptor ( size : Size2D < i32 > , alpha : bool ) -> ImageDescriptor {
969
+ let mut flags = ImageDescriptorFlags :: empty ( ) ;
970
+ flags. set ( ImageDescriptorFlags :: IS_OPAQUE , !alpha) ;
971
+ ImageDescriptor {
972
+ size : DeviceIntSize :: new ( size. width , size. height ) ,
968
973
stride : None ,
969
- format : webrender_api :: ImageFormat :: BGRA8 ,
974
+ format : ImageFormat :: BGRA8 ,
970
975
offset : 0 ,
971
976
flags,
972
977
}
973
978
}
974
979
975
- /// Helper function to create a `webrender_api::ImageData::External` instance.
976
- fn external_image_data (
977
- context_id : WebGLContextId ,
978
- target : webrender_api:: TextureTarget ,
979
- ) -> webrender_api:: ImageData {
980
- let data = webrender_api:: ExternalImageData {
981
- id : webrender_api:: ExternalImageId ( context_id. 0 as u64 ) ,
980
+ /// Helper function to create a `ImageData::External` instance.
981
+ fn external_image_data ( context_id : WebGLContextId , target : TextureTarget ) -> ImageData {
982
+ let data = ExternalImageData {
983
+ id : ExternalImageId ( context_id. 0 as u64 ) ,
982
984
channel_index : 0 ,
983
- image_type : webrender_api :: ExternalImageType :: TextureHandle ( target) ,
985
+ image_type : ExternalImageType :: TextureHandle ( target) ,
984
986
} ;
985
- webrender_api :: ImageData :: External ( data)
987
+ ImageData :: External ( data)
986
988
}
987
989
988
990
/// Gets the GLSL Version supported by a GLContext.
@@ -1006,14 +1008,14 @@ impl WebGLThread {
1006
1008
/// Helper struct to store cached WebGLContext information.
1007
1009
struct WebGLContextInfo {
1008
1010
/// Currently used WebRender image key.
1009
- image_key : webrender_api :: ImageKey ,
1011
+ image_key : ImageKey ,
1010
1012
}
1011
1013
1012
1014
// TODO(pcwalton): Add `GL_TEXTURE_EXTERNAL_OES`?
1013
- fn current_wr_texture_target ( device : & Device ) -> webrender_api :: TextureTarget {
1015
+ fn current_wr_texture_target ( device : & Device ) -> TextureTarget {
1014
1016
match device. surface_gl_texture_target ( ) {
1015
- gl:: TEXTURE_RECTANGLE => webrender_api :: TextureTarget :: Rect ,
1016
- _ => webrender_api :: TextureTarget :: Default ,
1017
+ gl:: TEXTURE_RECTANGLE => TextureTarget :: Rect ,
1018
+ _ => TextureTarget :: Default ,
1017
1019
}
1018
1020
}
1019
1021
0 commit comments