| Line 35... |
Line 35... |
| 35 |
data->rendererdata = malloc(sizeof(struct chooser_renderer_iconflow_data));
|
35 |
data->rendererdata = malloc(sizeof(struct chooser_renderer_iconflow_data));
|
| 36 |
if (!data->rendererdata) return -2;
|
36 |
if (!data->rendererdata) return -2;
|
| 37 |
struct chooser_renderer_iconflow_data* rdata;
|
37 |
struct chooser_renderer_iconflow_data* rdata;
|
| 38 |
rdata = (struct chooser_renderer_iconflow_data*)(data->rendererdata);
|
38 |
rdata = (struct chooser_renderer_iconflow_data*)(data->rendererdata);
|
| 39 |
rdata->viewposition = params->startposition * data->info->actionhandler->stepsperitem(data);
|
39 |
rdata->viewposition = params->startposition * data->info->actionhandler->stepsperitem(data);
|
| 40 |
rdata->accumulator = 0;
|
40 |
rdata->accumulator = 0;
|
| 41 |
rdata->lastupdate = USEC_TIMER;
|
41 |
rdata->lastupdate = USEC_TIMER;
|
| 42 |
return 0;
|
42 |
return 0;
|
| 43 |
}
|
43 |
}
|
| 44 |
|
44 |
|
| 45 |
static void chooser_renderer_iconflow_geticondata(int x, int y, int w, int h, int siv,
|
45 |
static void chooser_renderer_iconflow_geticondata(int x, int y, int w, int h, int siv,
|
| Line 58... |
Line 58... |
| 58 |
params = (const struct chooser_renderer_iconflow_params*)(data->info->rendererparams);
|
58 |
params = (const struct chooser_renderer_iconflow_params*)(data->info->rendererparams);
|
| 59 |
struct chooser_renderer_iconflow_data* rdata;
|
59 |
struct chooser_renderer_iconflow_data* rdata;
|
| 60 |
rdata = (struct chooser_renderer_iconflow_data*)(data->rendererdata);
|
60 |
rdata = (struct chooser_renderer_iconflow_data*)(data->rendererdata);
|
| 61 |
long time = USEC_TIMER;
|
61 |
long time = USEC_TIMER;
|
| 62 |
long timediff = time - rdata->lastupdate;
|
62 |
long timediff = time - rdata->lastupdate;
|
| - |
|
63 |
if (!timediff) timediff = 1;
|
| - |
|
64 |
int distance;
|
| 63 |
int distance = data->position - rdata->viewposition;
|
65 |
if (!rdata->lastupdate) distance = 0;
|
| 64 |
if (distance) rc = CHOOSER_RESULT_REDRAW;
|
66 |
else distance = data->position - rdata->viewposition;
|
| 65 |
int factor = params->smoothness / timediff + 1;
|
67 |
int factor = params->smoothness / timediff;
|
| - |
|
68 |
if (!factor) factor = 1;
|
| 66 |
rdata->accumulator += distance;
|
69 |
rdata->accumulator += distance;
|
| 67 |
distance = rdata->accumulator / factor;
|
70 |
distance = rdata->accumulator / factor;
|
| 68 |
rdata->accumulator -= distance * factor;
|
71 |
rdata->accumulator -= distance * factor;
|
| 69 |
rdata->viewposition += distance;
|
72 |
rdata->viewposition += distance;
|
| 70 |
rdata->lastupdate = time;
|
73 |
rdata->lastupdate = time;
|
| - |
|
74 |
if (data->position - rdata->viewposition) rc = CHOOSER_RESULT_REDRAW;
|
| - |
|
75 |
else rdata->lastupdate = 0;
|
| 71 |
if (params->copy_dest.buf.addr == params->fill_dest.loc.buf.addr
|
76 |
if (params->copy_dest.buf.addr == params->fill_dest.loc.buf.addr
|
| 72 |
&& params->copy_dest.buf.stride == params->fill_dest.loc.buf.stride
|
77 |
&& params->copy_dest.buf.stride == params->fill_dest.loc.buf.stride
|
| 73 |
&& params->copy_dest.pos.x == params->fill_dest.loc.pos.x
|
78 |
&& params->copy_dest.pos.x == params->fill_dest.loc.pos.x
|
| 74 |
&& params->copy_dest.pos.y == params->fill_dest.loc.pos.y
|
79 |
&& params->copy_dest.pos.y == params->fill_dest.loc.pos.y
|
| 75 |
&& params->copy_src.size.x == params->fill_dest.size.x
|
80 |
&& params->copy_src.size.x == params->fill_dest.size.x
|