1a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat/* This example shows how to use 15-bit (which is handled as 16-bit
2a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat   internally). */
3a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
4a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat#include <rfb/rfb.h>
5a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
6a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehatint main(int argc,char** argv)
7a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat{
8a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  int i,j;
9a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  uint16_t* f;
10a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
11a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  rfbScreenInfoPtr server=rfbGetScreen(&argc,argv,400,300,5,3,2);
12a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  if(!server)
13a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat    return 0;
14a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  server->frameBuffer=(char*)malloc(400*300*2);
15a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  f=(uint16_t*)server->frameBuffer;
16a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  for(j=0;j<300;j++)
17a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat    for(i=0;i<400;i++)
18a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat      f[j*400+i]=/* red */ ((j*32/300) << 10) |
19a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat		 /* green */ (((j+400-i)*32/700) << 5) |
20a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat		 /* blue */ ((i*32/400));
21a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat
22a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  rfbInitServer(server);
23a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  rfbRunEventLoop(server,-1,FALSE);
24a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat  return(0);
25a430b2b5ca4f0967836f5820e8f03adc17fc0a24San Mehat}
26