1# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5
6""" Helper functions to be used in bench_pictures.cfg. """
7
8
9def Config(**kwargs):
10  config = {}
11  for key in kwargs:
12    config[key] = kwargs[key]
13  return config
14
15
16def TileArgs(tile_x, tile_y, timeIndividualTiles=True):
17  config = {'mode': ['tile', str(tile_x), str(tile_y)]}
18  if timeIndividualTiles:
19    config['timeIndividualTiles'] = True
20  return config
21
22
23def BitmapConfig(**kwargs):
24  return Config(config='8888', **kwargs)
25
26
27def GPUConfig(**kwargs):
28  return Config(config='gpu', **kwargs)
29
30
31def TiledBitmapConfig(tile_x, tile_y, timeIndividualTiles=True, **kwargs):
32  return BitmapConfig(**dict(TileArgs(tile_x, tile_y,
33      timeIndividualTiles=timeIndividualTiles).items() + kwargs.items()))
34
35
36def TiledGPUConfig(tile_x, tile_y, **kwargs):
37  return GPUConfig(**dict(TileArgs(tile_x, tile_y).items() + kwargs.items()))
38
39
40def TiledConfig(tile_x, tile_y, timeIndividualTiles=True, **kwargs):
41  return Config(**dict(TileArgs(tile_x, tile_y,
42      timeIndividualTiles=timeIndividualTiles).items() + kwargs.items()))
43
44
45def ViewportBitmapConfig(viewport_x, viewport_y, **kwargs):
46  return BitmapConfig(viewport=[str(viewport_x), str(viewport_y)], **kwargs)
47
48
49def ViewportGPUConfig(viewport_x, viewport_y, **kwargs):
50  return GPUConfig(viewport=[str(viewport_x), str(viewport_y)], **kwargs)
51
52
53def ViewportRTreeConfig(viewport_x, viewport_y, **kwargs):
54  return RTreeConfig(mode='simple', viewport=[str(viewport_x), str(viewport_y)],
55                     **kwargs)
56
57
58def ViewportGridConfig(viewport_x, viewport_y, **kwargs):
59  return GridConfig(viewport_x, viewport_y, mode='simple',
60                    viewport=[str(viewport_x), str(viewport_y)], **kwargs)
61
62
63def CopyTilesConfig(tile_x, tile_y, **kwargs):
64  return BitmapConfig(mode=['copyTile', str(tile_x), str(tile_y)], **kwargs)
65
66
67def RecordConfig(**kwargs):
68  return BitmapConfig(mode='record', **kwargs)
69
70
71def PlaybackCreationConfig(**kwargs):
72  return BitmapConfig(mode='playbackCreation', **kwargs)
73
74
75def MultiThreadTileConfig(threads, tile_x, tile_y, **kwargs):
76  return TiledBitmapConfig(tile_x=tile_x, tile_y=tile_y,
77                           timeIndividualTiles=False, multi=str(threads),
78                           **kwargs)
79
80
81def RTreeConfig(**kwargs):
82  return BitmapConfig(bbh='rtree', **kwargs)
83
84
85def GridConfig(tile_x, tile_y, mode, **kwargs):
86  return BitmapConfig(mode=mode, bbh=['grid', str(tile_x), str(tile_y)],
87                      **kwargs)
88
89
90def RecordRTreeConfig(**kwargs):
91  return RTreeConfig(mode='record', **kwargs)
92
93
94def PlaybackCreationRTreeConfig(**kwargs):
95  return RTreeConfig(mode='playbackCreation', **kwargs)
96
97
98def TileRTreeConfig(tile_x, tile_y, **kwargs):
99  return RTreeConfig(**dict(TileArgs(tile_x, tile_y).items() + kwargs.items()))
100
101
102def RecordGridConfig(tile_x, tile_y, **kwargs):
103  return GridConfig(tile_x=tile_x, tile_y=tile_y, mode='record', **kwargs)
104
105
106def PlaybackCreationGridConfig(tile_x, tile_y, **kwargs):
107  return GridConfig(tile_x, tile_y, mode='playbackCreation')
108
109
110def TileGridConfig(tile_x, tile_y, **kwargs):
111  return GridConfig(tile_x, tile_y,
112                    **dict(TileArgs(tile_x, tile_y).items() + kwargs.items()))
113