1
1
use crate :: {
2
2
backend:: render:: {
3
- element:: { AsGlowFrame , AsGlowRenderer } ,
4
- GlMultiError , GlMultiFrame , GlMultiRenderer , SplitRenderElements ,
3
+ element:: { AsGlowRenderer , FromGlesError } ,
4
+ SplitRenderElements ,
5
5
} ,
6
6
state:: State ,
7
7
utils:: { iced:: IcedElementInternal , prelude:: * } ,
@@ -1270,90 +1270,20 @@ where
1270
1270
}
1271
1271
}
1272
1272
1273
- impl RenderElement < GlowRenderer > for CosmicMappedRenderElement < GlowRenderer > {
1274
- fn draw < ' frame > (
1275
- & self ,
1276
- frame : & mut <GlowRenderer as Renderer >:: Frame < ' frame > ,
1277
- src : Rectangle < f64 , BufferCoords > ,
1278
- dst : Rectangle < i32 , Physical > ,
1279
- damage : & [ Rectangle < i32 , Physical > ] ,
1280
- opaque_regions : & [ Rectangle < i32 , Physical > ] ,
1281
- ) -> Result < ( ) , <GlowRenderer as Renderer >:: Error > {
1282
- match self {
1283
- CosmicMappedRenderElement :: Stack ( elem) => {
1284
- elem. draw ( frame, src, dst, damage, opaque_regions)
1285
- }
1286
- CosmicMappedRenderElement :: Window ( elem) => {
1287
- elem. draw ( frame, src, dst, damage, opaque_regions)
1288
- }
1289
- CosmicMappedRenderElement :: TiledStack ( elem) => {
1290
- elem. draw ( frame, src, dst, damage, opaque_regions)
1291
- }
1292
- CosmicMappedRenderElement :: TiledWindow ( elem) => {
1293
- elem. draw ( frame, src, dst, damage, opaque_regions)
1294
- }
1295
- CosmicMappedRenderElement :: TiledOverlay ( elem) => {
1296
- RenderElement :: < GlowRenderer > :: draw ( elem, frame, src, dst, damage, opaque_regions)
1297
- }
1298
- CosmicMappedRenderElement :: MovingStack ( elem) => {
1299
- elem. draw ( frame, src, dst, damage, opaque_regions)
1300
- }
1301
- CosmicMappedRenderElement :: MovingWindow ( elem) => {
1302
- elem. draw ( frame, src, dst, damage, opaque_regions)
1303
- }
1304
- CosmicMappedRenderElement :: GrabbedStack ( elem) => {
1305
- elem. draw ( frame, src, dst, damage, opaque_regions)
1306
- }
1307
- CosmicMappedRenderElement :: GrabbedWindow ( elem) => {
1308
- elem. draw ( frame, src, dst, damage, opaque_regions)
1309
- }
1310
- CosmicMappedRenderElement :: FocusIndicator ( elem) => {
1311
- RenderElement :: < GlowRenderer > :: draw ( elem, frame, src, dst, damage, opaque_regions)
1312
- }
1313
- CosmicMappedRenderElement :: Overlay ( elem) => {
1314
- RenderElement :: < GlowRenderer > :: draw ( elem, frame, src, dst, damage, opaque_regions)
1315
- }
1316
- CosmicMappedRenderElement :: StackHoverIndicator ( elem) => {
1317
- RenderElement :: < GlowRenderer > :: draw ( elem, frame, src, dst, damage, opaque_regions)
1318
- }
1319
- #[ cfg( feature = "debug" ) ]
1320
- CosmicMappedRenderElement :: Egui ( elem) => {
1321
- RenderElement :: < GlowRenderer > :: draw ( elem, frame, src, dst, damage, opaque_regions)
1322
- }
1323
- }
1324
- }
1325
-
1326
- fn underlying_storage ( & self , renderer : & mut GlowRenderer ) -> Option < UnderlyingStorage > {
1327
- match self {
1328
- CosmicMappedRenderElement :: Stack ( elem) => elem. underlying_storage ( renderer) ,
1329
- CosmicMappedRenderElement :: Window ( elem) => elem. underlying_storage ( renderer) ,
1330
- CosmicMappedRenderElement :: TiledStack ( elem) => elem. underlying_storage ( renderer) ,
1331
- CosmicMappedRenderElement :: TiledWindow ( elem) => elem. underlying_storage ( renderer) ,
1332
- CosmicMappedRenderElement :: TiledOverlay ( elem) => elem. underlying_storage ( renderer) ,
1333
- CosmicMappedRenderElement :: MovingStack ( elem) => elem. underlying_storage ( renderer) ,
1334
- CosmicMappedRenderElement :: MovingWindow ( elem) => elem. underlying_storage ( renderer) ,
1335
- CosmicMappedRenderElement :: GrabbedStack ( elem) => elem. underlying_storage ( renderer) ,
1336
- CosmicMappedRenderElement :: GrabbedWindow ( elem) => elem. underlying_storage ( renderer) ,
1337
- CosmicMappedRenderElement :: FocusIndicator ( elem) => elem. underlying_storage ( renderer) ,
1338
- CosmicMappedRenderElement :: Overlay ( elem) => elem. underlying_storage ( renderer) ,
1339
- CosmicMappedRenderElement :: StackHoverIndicator ( elem) => {
1340
- elem. underlying_storage ( renderer)
1341
- }
1342
- #[ cfg( feature = "debug" ) ]
1343
- CosmicMappedRenderElement :: Egui ( elem) => elem. underlying_storage ( renderer) ,
1344
- }
1345
- }
1346
- }
1347
-
1348
- impl < ' a > RenderElement < GlMultiRenderer < ' a > > for CosmicMappedRenderElement < GlMultiRenderer < ' a > > {
1273
+ impl < R > RenderElement < R > for CosmicMappedRenderElement < R >
1274
+ where
1275
+ R : Renderer + ImportAll + ImportMem + AsGlowRenderer ,
1276
+ <R as Renderer >:: TextureId : ' static ,
1277
+ <R as Renderer >:: Error : FromGlesError ,
1278
+ {
1349
1279
fn draw < ' frame > (
1350
1280
& self ,
1351
- frame : & mut GlMultiFrame < ' a , ' frame > ,
1281
+ frame : & mut R :: Frame < ' frame > ,
1352
1282
src : Rectangle < f64 , BufferCoords > ,
1353
1283
dst : Rectangle < i32 , Physical > ,
1354
1284
damage : & [ Rectangle < i32 , Physical > ] ,
1355
1285
opaque_regions : & [ Rectangle < i32 , Physical > ] ,
1356
- ) -> Result < ( ) , GlMultiError > {
1286
+ ) -> Result < ( ) , R :: Error > {
1357
1287
match self {
1358
1288
CosmicMappedRenderElement :: Stack ( elem) => {
1359
1289
elem. draw ( frame, src, dst, damage, opaque_regions)
@@ -1369,13 +1299,13 @@ impl<'a> RenderElement<GlMultiRenderer<'a>> for CosmicMappedRenderElement<GlMult
1369
1299
}
1370
1300
CosmicMappedRenderElement :: TiledOverlay ( elem) => RenderElement :: < GlowRenderer > :: draw (
1371
1301
elem,
1372
- frame . glow_frame_mut ( ) ,
1302
+ R :: glow_frame_mut ( frame ) ,
1373
1303
src,
1374
1304
dst,
1375
1305
damage,
1376
1306
opaque_regions,
1377
1307
)
1378
- . map_err ( |err| GlMultiError :: Render ( err ) ) ,
1308
+ . map_err ( FromGlesError :: from_gles_error ) ,
1379
1309
CosmicMappedRenderElement :: MovingStack ( elem) => {
1380
1310
elem. draw ( frame, src, dst, damage, opaque_regions)
1381
1311
}
@@ -1390,28 +1320,28 @@ impl<'a> RenderElement<GlMultiRenderer<'a>> for CosmicMappedRenderElement<GlMult
1390
1320
}
1391
1321
CosmicMappedRenderElement :: FocusIndicator ( elem) => RenderElement :: < GlowRenderer > :: draw (
1392
1322
elem,
1393
- frame . glow_frame_mut ( ) ,
1323
+ R :: glow_frame_mut ( frame ) ,
1394
1324
src,
1395
1325
dst,
1396
1326
damage,
1397
1327
opaque_regions,
1398
1328
)
1399
- . map_err ( |err| GlMultiError :: Render ( err ) ) ,
1329
+ . map_err ( FromGlesError :: from_gles_error ) ,
1400
1330
CosmicMappedRenderElement :: Overlay ( elem) => RenderElement :: < GlowRenderer > :: draw (
1401
1331
elem,
1402
- frame . glow_frame_mut ( ) ,
1332
+ R :: glow_frame_mut ( frame ) ,
1403
1333
src,
1404
1334
dst,
1405
1335
damage,
1406
1336
opaque_regions,
1407
1337
)
1408
- . map_err ( |err| GlMultiError :: Render ( err ) ) ,
1338
+ . map_err ( FromGlesError :: from_gles_error ) ,
1409
1339
CosmicMappedRenderElement :: StackHoverIndicator ( elem) => {
1410
1340
elem. draw ( frame, src, dst, damage, opaque_regions)
1411
1341
}
1412
1342
#[ cfg( feature = "debug" ) ]
1413
1343
CosmicMappedRenderElement :: Egui ( elem) => {
1414
- let glow_frame = frame . glow_frame_mut ( ) ;
1344
+ let glow_frame = R :: glow_frame_mut ( frame ) ;
1415
1345
RenderElement :: < GlowRenderer > :: draw (
1416
1346
elem,
1417
1347
glow_frame,
@@ -1420,12 +1350,12 @@ impl<'a> RenderElement<GlMultiRenderer<'a>> for CosmicMappedRenderElement<GlMult
1420
1350
damage,
1421
1351
opaque_regions,
1422
1352
)
1423
- . map_err ( |err| GlMultiError :: Render ( err ) )
1353
+ . map_err ( FromGlesError :: from_gles_error )
1424
1354
}
1425
1355
}
1426
1356
}
1427
1357
1428
- fn underlying_storage ( & self , renderer : & mut GlMultiRenderer < ' a > ) -> Option < UnderlyingStorage > {
1358
+ fn underlying_storage ( & self , renderer : & mut R ) -> Option < UnderlyingStorage > {
1429
1359
match self {
1430
1360
CosmicMappedRenderElement :: Stack ( elem) => elem. underlying_storage ( renderer) ,
1431
1361
CosmicMappedRenderElement :: Window ( elem) => elem. underlying_storage ( renderer) ,
0 commit comments