author | Tero Marttila <terom@fixme.fi> |
Thu, 28 Aug 2008 03:14:07 +0300 | |
changeset 47 | a5c09677ca6f |
parent 23 | 31307efd7e78 |
permissions | -rw-r--r-- |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
1 |
#include <stdlib.h> |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
#include <assert.h> |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
4 |
#include "common.h" |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
5 |
#include "render_struct.h" |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
6 |
#include "render_slices_struct.h" |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
7 |
#include "render_slices.h" |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
8 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
9 |
void render_slices_free (struct render_slices *ctx) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
10 |
render_slices_deinit(ctx); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
11 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
12 |
if (ctx->owned_by_me) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
13 |
free(ctx); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
14 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
15 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
16 |
void render_slices_deinit (struct render_slices *ctx) { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
17 |
if (ctx->rowbuf) { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
18 |
free(ctx->rowbuf); |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
19 |
ctx->rowbuf = NULL; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
20 |
} |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
21 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
22 |
render_png_deinit(&ctx->png_info); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
23 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
24 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
25 |
#define HALF(a, b) (( a + b) / 2) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
26 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
27 |
int render_slices_init (struct render_slices *ctx, struct render *render) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
28 |
// initialize the slices |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
29 |
// for now, just split it in half into two render_ts |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
30 |
ctx->slices[0].info.index = 0; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
31 |
ctx->slices[0].info.render_info = &ctx->slices[0].render_info; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
32 |
ctx->slices[0].self = ctx; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
33 |
ctx->slices[0].row_offset = 0; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
34 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
35 |
ctx->slices[1].info.index = 1; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
36 |
ctx->slices[1].info.render_info = &ctx->slices[1].render_info; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
37 |
ctx->slices[1].self = ctx; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
38 |
ctx->slices[1].row_offset = render->img_w / 2; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
39 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
40 |
ctx->num_slices = 2; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
41 |
ctx->render_row = 0; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
42 |
ctx->done_row = -1; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
43 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
44 |
assert(RENDER_SLICES_MAX >= 2); |
22
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
45 |
|
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
46 |
// should probably use memcpy instead... |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
47 |
if ( |
23
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
48 |
render_init (&ctx->slices[0].render_info) |
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
49 |
|| render_init (&ctx->slices[1].render_info) |
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
50 |
|
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
51 |
|| render_set_mode (&ctx->slices[0].render_info, RENDER_RAW) |
31307efd7e78
new render_threads module, make node_main use it, compiles, not yet tested
Tero Marttila <terom@fixme.fi>
parents:
22
diff
changeset
|
52 |
|| render_set_mode (&ctx->slices[1].render_info, RENDER_RAW) |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
53 |
|
22
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
54 |
|| render_set_size (&ctx->slices[0].render_info, render->img_w, render->img_h) |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
55 |
|| render_set_size (&ctx->slices[1].render_info, render->img_w, render->img_h) |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
56 |
|
22
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
57 |
|| render_region_raw (&ctx->slices[0].render_info, render->x1, render->y1, render->x2, render->y2) |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
58 |
|| render_region_raw (&ctx->slices[1].render_info, render->x1, render->y1, render->x2, render->y2) |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
59 |
) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
60 |
ERROR("render_{init,set_size,set_region_raw}"); |
22
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
61 |
|
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
62 |
// set the offsets |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
63 |
ctx->slices[0].render_info.img_left = 0; |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
64 |
ctx->slices[0].render_info.img_right = render->img_w / 2; |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
65 |
ctx->slices[1].render_info.img_left = render->img_w / 2; |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
66 |
ctx->slices[1].render_info.img_right = render->img_w; |
4627760fc0d1
add img_{left,right,top,bottom} and img_{x,y}_step to struct render and change render_mandelbrot/slices to use them
Tero Marttila <terom@fixme.fi>
parents:
19
diff
changeset
|
67 |
|
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
68 |
// allocate the rowbuf |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
69 |
if (!(ctx->rowbuf = malloc(render->img_w * 2))) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
70 |
ERROR("malloc"); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
71 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
72 |
// update the slice_buf pointers |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
73 |
ctx->rows[0] = ctx->rowbuf; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
74 |
ctx->rows[1] = ctx->rowbuf + render->img_w; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
75 |
ctx->slices[0].info.render_buf = ctx->rows[ctx->render_row] + ctx->slices[0].row_offset; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
76 |
ctx->slices[1].info.render_buf = ctx->rows[ctx->render_row] + ctx->slices[1].row_offset; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
77 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
78 |
// png info |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
79 |
if (render_png_init(&ctx->png_info, render)) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
80 |
ERROR("render_png_init"); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
81 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
82 |
// great success! |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
83 |
return 0; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
84 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
85 |
error: |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
86 |
render_slices_deinit(ctx); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
87 |
return -1; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
88 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
89 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
90 |
struct render_slices *render_slices_alloc (struct render *render) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
91 |
struct render_slices *ctx = NULL; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
92 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
93 |
// allocate it |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
94 |
if (!(ctx = calloc(1, sizeof(*ctx)))) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
95 |
ERROR("calloc"); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
96 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
97 |
// mark it for free()ing |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
98 |
ctx->owned_by_me = 1; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
99 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
100 |
// initialize it |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
101 |
if (render_slices_init(ctx, render)) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
102 |
goto error; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
103 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
104 |
return ctx; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
105 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
106 |
error : |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
107 |
render_slices_free(ctx); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
108 |
return NULL; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
109 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
110 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
111 |
int render_slices_get_count (struct render_slices *ctx) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
112 |
return ctx->num_slices; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
113 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
114 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
115 |
struct render_slice_info *render_slices_get_slice_info (struct render_slices *ctx, int index) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
116 |
assert(index >= 0 && index < ctx->num_slices); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
117 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
118 |
return &ctx->slices[index].info; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
119 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
120 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
121 |
int render_slices_segment_done (struct render_slices *ctx, int index) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
122 |
assert(index >= 0 && index < ctx->num_slices); |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
123 |
assert(ctx->render_row >= 0); |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
124 |
assert(ctx->segments_done >= 0 && ctx->segments_done < ctx->num_slices); |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
125 |
|
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
126 |
// our return status |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
127 |
int i, status = 0; |
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
128 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
129 |
// is this row now complete? |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
130 |
if (++ctx->segments_done == ctx->num_slices) { |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
131 |
// the row is complete |
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
132 |
ctx->segments_done = 0; |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
133 |
|
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
134 |
// once we fill up a row we can always call process_row |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
135 |
status |= SLICE_PROCESS_ROW; |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
136 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
137 |
// is the other row already rendered? |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
138 |
if (ctx->done_row < 0) { |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
139 |
// yes, point the done_row at this row, point the render buffers to the unused row |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
140 |
ctx->done_row = ctx->render_row; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
141 |
ctx->render_row = (ctx->render_row == 0 ? 1 : 0); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
142 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
143 |
// can now continue rendering as well as call process_row |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
144 |
status |= SLICE_CONTINUE; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
145 |
|
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
146 |
// update the remaining render buffers |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
147 |
for (i = 0; i < ctx->num_slices; i++) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
148 |
ctx->slices[i].info.render_buf = ctx->rows[ctx->render_row] + ctx->slices[i].row_offset; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
149 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
150 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
151 |
} else { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
152 |
// cannot continue rendering, need to have process_row complete first |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
153 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
154 |
ctx->render_row = -1; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
155 |
} |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
156 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
157 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
158 |
} else { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
159 |
// the row is not complete, do not render the next segment, do not call process_row |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
160 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
161 |
} |
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
162 |
|
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
163 |
return status; |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
164 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
165 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
166 |
int render_slices_process_row (struct render_slices *ctx) { |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
167 |
assert(ctx->done_row >= 0); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
168 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
169 |
int i; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
170 |
|
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
171 |
// pass the data to render_png, this results in calls to _render_multi_png_data |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
172 |
if (render_png_row(&ctx->png_info, ctx->rows[ctx->done_row])) |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
173 |
ERROR("render_png_row"); |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
174 |
|
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
175 |
// is the other row still in the process of being assembled? |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
176 |
if (ctx->render_row == -1) { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
177 |
// no, both rows were full |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
178 |
ctx->render_row = ctx->done_row; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
179 |
ctx->done_row = (ctx->done_row == 0 ? 1 : 0); |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
180 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
181 |
// update the remaining render buffers |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
182 |
for (i = 0; i < ctx->num_slices; i++) { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
183 |
ctx->slices[i].info.render_buf = ctx->rows[ctx->render_row] + ctx->slices[i].row_offset; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
184 |
} |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
185 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
186 |
// you can call me again, but also segment_done |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
187 |
return SLICE_PROCESS_ROW | SLICE_CONTINUE; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
188 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
189 |
} else { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
190 |
// yes, so that still needs to be finished |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
191 |
ctx->done_row = -1; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
192 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
193 |
if (ctx->segments_done == 0) { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
194 |
// that row is empty, then we can continue |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
195 |
return SLICE_CONTINUE; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
196 |
|
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
197 |
} else { |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
198 |
// that row is partially built, so some segment is still on the way - don't resume the other slices until that's arrived! |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
199 |
return 0; |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
200 |
} |
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
201 |
} |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
202 |
|
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
203 |
error: |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
204 |
// user needs to deinit/free us |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
205 |
return -1; |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
206 |
} |
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
207 |
|
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
208 |
int render_slices_done (struct render_slices *ctx) { |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
209 |
// finish off render_png |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
210 |
if (render_png_done(&ctx->png_info)) |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
211 |
goto error; |
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
212 |
|
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
213 |
return 0; |
17
8e8b56b0e0f5
a half-working render_slices. Render_multi is currently semantically broken/buggy, but it's time to go to sleep
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
214 |
|
18
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
215 |
error: |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
216 |
render_slices_free(ctx); |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
217 |
return -1; |
86f2e5b7191b
render_multi uses render_slices now, and seems to work
Tero Marttila <terom@fixme.fi>
parents:
17
diff
changeset
|
218 |
} |
19
d18606bb6f20
a working threaded sliced render, plus modifications to other modules to use this in web_main
Tero Marttila <terom@fixme.fi>
parents:
18
diff
changeset
|
219 |