render_file.c
author Tero Marttila <terom@fixme.fi>
Fri, 06 Jun 2008 03:24:55 +0300
changeset 9 fb6632e6c1bb
parent 8 4d38ccbeb93e
child 11 082bfaf38cf0
permissions -rw-r--r--
two new modules, remote_node and remote_pool

committer: Tero Marttila <terom@fixme.fi>
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#include <stdio.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#include <stdlib.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
#include <unistd.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
#include <string.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#include <sys/types.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
#include <sys/socket.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#include <arpa/inet.h>
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
8
4d38ccbeb93e * fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
     9
#include "render.h"
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
#include "mandelbrot.h"
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
#include "common.h"
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
static int verbose;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
1
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    15
void render_local (int img_w, int img_h, FILE *output) {
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    16
    render_t ctx;
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
1
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    18
    render_init(&ctx, RENDER_PNG);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    19
    render_set_size(&ctx, img_w, img_h);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    20
    render_region_full(&ctx);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    21
    render_io_stream(&ctx, output);
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    double duration;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
1
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    25
    if (mandelbrot_render_timed(&ctx, &duration) != MANDELBROT_OK)
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
        err_exit("mandelbrot_render_region failed");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
    if (verbose) 
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
        fprintf(stdout, "rendered %dx%d mandelbrot in %f seconds\n", img_w, img_h, duration);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
}
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
    32
#if 0
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
void render_remote (int img_w, int img_h, FILE *output, FILE *remote) {
1
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    34
    render_t ctx;
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
    struct render_cmd cmd;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
1
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    37
    render_init(&ctx, RENDER_PNG);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    38
    render_set_size(&ctx, img_w, img_h);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    39
    render_region_full(&ctx);
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    40
6aa1a0d1f88d partial commit of new render module, render_file should work, web_main doesn't
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    41
    if (render_cmd_build(&ctx, &cmd))
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
        err_exit("mandelbrot_render_remote failed");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
    int ret = fwrite((void *) &cmd, sizeof(cmd), 1, remote);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
    if (ret != 1)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
        perr_exit("fwrite(remote)");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
        
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
    if (verbose)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    50
        printf("sent render command of %zu bytes\n", sizeof(cmd));
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
    // shuffle data around
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
    while (!feof(remote)) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
        char buf[1024];
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    56
        int bytes = fread(buf, 1, sizeof(buf), remote);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    57
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    58
        if (bytes)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    59
            if (fwrite(buf, bytes, 1, output) != 1)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
                perr_exit("fwrite(output)");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    61
    }
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
    if (verbose)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    64
        printf("got PNG data\n");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    65
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    66
    if (ferror(remote))
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    67
        perr_exit("fread(remote)");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    68
}
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    69
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    70
FILE *open_remote (char *remote) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    71
    char *addr_str, *port_str = NULL;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    72
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    73
    addr_str = strsep(&remote, ":");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    74
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    75
    if (remote)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    76
        port_str = remote;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    77
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    78
    struct sockaddr_in addr;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    79
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    80
    addr.sin_family = AF_INET;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    81
    addr.sin_port = htons(port_str ? atoi(port_str) : RENDER_PORT);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    82
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    83
    if (inet_aton(addr_str, &addr.sin_addr) == 0)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    84
        err_exit("invalid address: %s", addr_str);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    85
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    86
    int sock;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    87
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    88
    if ((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    89
        perr_exit("socket");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    90
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    91
    if (verbose)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    92
        printf("connect(%s, %d)\n", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    93
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    94
    if (connect(sock, (const struct sockaddr *) &addr, sizeof(addr)) == -1)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    95
        perr_exit("connect(%s, %d)", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    96
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    97
    FILE *fh = fdopen(sock, "w+");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    98
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    99
    if (!fh || ferror(fh))
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   100
        perr_exit("fdopen");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   101
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   102
    setbuffer(fh, NULL, 0);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   103
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   104
    return fh;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   105
}
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   106
#endif
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   107
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   108
int main (int argc, char **argv) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   109
    int opt;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   110
    
8
4d38ccbeb93e * fix Makefile to build in a (more) sensible way (still not really perfect)
Tero Marttila <terom@fixme.fi>
parents: 3
diff changeset
   111
    FILE *output = NULL /*, *remote = NULL */ ;
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   112
    int img_w = 256, img_h = 256;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   113
    
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   114
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   115
    while ((opt = getopt(argc, argv, "w:h:o:vr:")) != -1) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   116
        switch(opt) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   117
            case 'w' :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   118
                img_w = atoi(optarg);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   119
                break;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   120
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   121
            case 'h' :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   122
                img_h = atoi(optarg);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   123
                break;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   124
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   125
            case 'o' :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   126
                if (output)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   127
                    err_exit("Only use -o once");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   128
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   129
                output = fopen(optarg, "w");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   130
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   131
                if (!output)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   132
                    die(optarg);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   133
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   134
                break;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   135
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   136
            case 'v' :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   137
                verbose = 1;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   138
                break;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   139
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   140
#if 0
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   141
            case 'r' :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   142
                if (remote)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   143
                    err_exit("Only use -r once");
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   144
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   145
                remote = open_remote(optarg);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   146
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   147
                break;
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   148
#endif
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   149
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   150
            default :
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   151
                err_exit("Usage: %s [-w img_w] [-h img_h] [-o output_file] [-v] [-r host[:port]]", argv[0]);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   152
        }
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   153
    }
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   154
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   155
    if (!output)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   156
        output = stdout;
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   157
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   158
#if 0
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   159
    if (remote) {
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   160
        if (verbose)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   161
            fprintf(stderr, "Render [%dx%d] mandelbrot remotely\n", img_w, img_h);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   162
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   163
        render_remote(img_w, img_h, output, remote);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   164
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   165
        fclose(remote);
3
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   166
    } else
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   167
#endif    
675be0a45157 working chunked-streaming of remote-rendered mandelbrots in web_main, next step will be flow control. Remote rendering doesn't compile in render_node.
Tero Marttila <terom@fixme.fi>
parents: 1
diff changeset
   168
    {
0
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   169
        if (verbose)
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   170
            fprintf(stderr, "Render [%dx%d] mandelbrot locally\n", img_w, img_h);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   171
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   172
        render_local(img_w, img_h, output);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   173
    }
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   174
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   175
    fclose(output);
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   176
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   177
    return 0;
5b010627d7ed initial code, render_file(local+remote), render_node, web_main(local)
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   178
}