diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-11-17 19:43:59 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-11-17 19:43:59 (GMT) |
| commit | e3594aba9e05c6865d396418c028049cda92c2f3 (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /font/editor.c | |
| parent | fb43f7d23e99765ae093fc45608901cb5907d1d8 (diff) | |
| download | powder-e3594aba9e05c6865d396418c028049cda92c2f3.zip powder-e3594aba9e05c6865d396418c028049cda92c2f3.tar.gz | |
Remove old code
Diffstat (limited to 'font/editor.c')
| -rw-r--r-- | font/editor.c | 288 |
1 files changed, 0 insertions, 288 deletions
diff --git a/font/editor.c b/font/editor.c deleted file mode 100644 index 7714782..0000000 --- a/font/editor.c +++ /dev/null @@ -1,288 +0,0 @@ -#ifdef FONTEDITOR - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <SDL/SDL.h> - -#define CELLW 12 -#define CELLH 10 - -#define XRES 800 -#define YRES 600 - -char xsize=CELLW, ysize=CELLH; -char base=7, top=2; -char font[256][CELLH][CELLW]; -char width[256]; - -void blendpixel(unsigned *vid, int x, int y, int r, int g, int b, int a) -{ - int t; - if(x<0 || y<0 || x>=XRES || y>=YRES) - return; - if(a!=255) { - t = vid[y*XRES+x]; - r = (a*r + (255-a)*((t>>16)&255)) >> 8; - g = (a*g + (255-a)*((t>>8)&255)) >> 8; - b = (a*b + (255-a)*(t&255)) >> 8; - } - vid[y*XRES+x] = (r<<16)|(g<<8)|b; -} - -int drawchar(unsigned *vid, int x, int y, int c, int r, int g, int b) -{ - int i, j; - for(j=0; j<CELLH; j++) - for(i=0; i<width[c]; i++) - blendpixel(vid, x+i, y+j, r, g, b, (font[c][j][i]*255)/3); - return x + width[c]; -} - -int drawtext(unsigned *vid, int x, int y, char *s, int r, int g, int b) -{ - for(;*s;s++) - x = drawchar(vid, x, y, *s, r, g, b); - return x; -} - -void drawline(unsigned *vid, int x1, int y1, int x2, int y2, int r, int g, int b, int a) -{ - int cp=abs(y2-y1)>abs(x2-x1), x, y, dx, dy, sy; - float e, de; - if(cp) { - y = x1; - x1 = y1; - y1 = y; - y = x2; - x2 = y2; - y2 = y; - } - if(x1 > x2) { - y = x1; - x1 = x2; - x2 = y; - y = y1; - y1 = y2; - y2 = y; - } - dx = x2 - x1; - dy = abs(y2 - y1); - e = 0.0f; - de = dy/(float)dx; - y = y1; - sy = (y1<y2) ? 1 : -1; - for(x=x1; x<=x2; x++) { - if(cp) - blendpixel(vid, y, x, r, g, b, a); - else - blendpixel(vid, x, y, r, g, b, a); - e += de; - if(e >= 0.5f) { - y += sy; - e -= 1.0f; - } - } -} - -void drawcell(unsigned *vid, int i, int j, int c, int m) -{ - int x,y,x0=i*32+64,y0=j*32+64; - for(y=1;y<32;y++) - for(x=1;x<32;x++) - blendpixel(vid, x0+x, y0+y, 127*m, 127*m, 127*m, c); - for(x=0;x<32;x+=2) { - if(!j) - blendpixel(vid, x0+x, y0, 64*m, 64*m, 64*m, 255); - if(!i) - blendpixel(vid, x0, y0+x, 64*m, 64*m, 64*m, 255); - blendpixel(vid, x0+x, y0+32, 64*m, 64*m, 64*m, 255); - blendpixel(vid, x0+32, y0+x, 64*m, 64*m, 64*m, 255); - } -} - -/*********************************************************** - * SDL OUTPUT * - ***********************************************************/ - -SDL_Surface *sdl_scrn; -int sdl_key; -void sdl_open(void) -{ - if(SDL_Init(SDL_INIT_VIDEO)<0) { - fprintf(stderr, "Initializing SDL: %s\n", SDL_GetError()); - exit(1); - } - atexit(SDL_Quit); - sdl_scrn=SDL_SetVideoMode(XRES*SCALE,YRES*SCALE + 40*SCALE,32,SDL_SWSURFACE); - if(!sdl_scrn) { - fprintf(stderr, "Creating window: %s\n", SDL_GetError()); - exit(1); - } -} - -void sdl_blit(int x, int y, int w, int h, unsigned int *src, int pitch) -{ - unsigned *dst,i,j,k; - if(SDL_MUSTLOCK(sdl_scrn)) - if(SDL_LockSurface(sdl_scrn)<0) - return; - dst=(unsigned *)sdl_scrn->pixels+y*sdl_scrn->pitch/4+x; - for(j=0;j<h;j++) { - for(k=0;k<SCALE;k++) { - for(i=0;i<w*SCALE;i++) - dst[i]=src[i/SCALE]; - dst+=sdl_scrn->pitch/4; - } - src+=pitch/4; - } - if(SDL_MUSTLOCK(sdl_scrn)) - SDL_UnlockSurface(sdl_scrn); - SDL_UpdateRect(sdl_scrn,0,0,0,0); -} - -int frame_idx=0; -void dump_frame(unsigned int *src, int w, int h, int pitch) -{ - char frame_name[32]; - unsigned j,i,c; - FILE *f; - sprintf(frame_name,"frame%04d.ppm",frame_idx); - f=fopen(frame_name,"w"); - fprintf(f,"P6\n%d %d\n255\n",w,h); - for(j=0;j<h;j++) { - for(i=0;i<w;i++) { - c=((src[i]&0xFF0000)>>16)|(src[i]&0x00FF00)|((src[i]&0x0000FF)<<16); - fwrite(&c,3,1,f); - } - src+=pitch/4; - } - fclose(f); - frame_idx++; -} - -int sdl_poll(void) -{ - SDL_Event event; - sdl_key=0; - while(SDL_PollEvent(&event)) { - switch (event.type) { - case SDL_KEYDOWN: - sdl_key=event.key.keysym.sym; - break; - case SDL_QUIT: - return 1; - } - } - return 0; -} - -/*********************************************************** - * MAIN PROGRAM * - ***********************************************************/ - -char *tag = "(c) 2008 Stanislaw Skowronek"; - -int main(int argc, char *argv[]) -{ - unsigned *vid_buf = calloc(XRES*YRES, sizeof(unsigned)); - int x, y, b = 0, lb, c = 0xA0, i, j, dc = 0; - int mode = 0; - FILE *f; - - f = fopen("font.bin", "r"); - if(f) { - fread(&xsize, 1, 1, f); - fread(&ysize, 1, 1, f); - fread(&base, 1, 1, f); - fread(&top, 1, 1, f); - fread(width, 1, 256, f); - fread(font, CELLW*CELLH, 256, f); - fclose(f); - } - - sdl_open(); - while(!sdl_poll()) { - if(sdl_key=='q' || sdl_key==SDLK_ESCAPE) - break; - if(sdl_key==' ' || sdl_key=='=') { - c++; - printf("Current: %02X '%c'\n", c, c); - } - if(sdl_key=='\b' || sdl_key=='-') { - c--; - printf("Current: %02X '%c'\n", c, c); - } - - lb = b; - b = SDL_GetMouseState(&x, &y); - if(b) { - x /= SCALE; - y /= SCALE; - } - - i = x/32-2; - j = y/32-2; - if(!lb && b && (i<0 || i>=CELLW)) { - if(abs(j-base) < abs(j-top)) - mode = 2; // BASE - else - mode = 3; // TOP - } else if(!lb && b && (j<0 || j>=CELLH)) - mode = 4; // LEFT - else if(!lb && b) { - mode = 1; // DRAW - if(b==1) - dc = (font[c][j][i]+3)%4; - else - dc = (font[c][j][i]+1)%4; - } - - if(b) - switch(mode) { - case 1: - if(i>=0 && j>=0 && i<CELLW && j<CELLH) - font[c][j][i] = dc; - break; - case 2: - base = j; - break; - case 3: - top = j; - break; - case 4: - width[c] = i; - break; - } - - memset(vid_buf, 0, XRES*YRES*4); - for(j=0; j<CELLH; j++) - for(i=0; i<CELLW; i++) - drawcell(vid_buf, i, j, (font[c][j][i]*255)/3, i>=width[c]?1:2); - drawline(vid_buf, 32, 64+base*32, 128+32*CELLW, 64+base*32, 128, 255, 128, 255); - drawline(vid_buf, 32, 64+top*32, 128+32*CELLW, 64+top*32, 128, 128, 255, 255); - drawline(vid_buf, 64+width[c]*32, 32, 64+width[c]*32, 128+32*CELLH, 255, 128, 128, 255); - - drawtext(vid_buf, 64, 192+32*CELLH, "A quick brown fox jumps over the lazy dog.", 255, 255, 255); - drawtext(vid_buf, 64, 192+33*CELLH, "A QUICK BROWN FOX JUMPS OVER THE LAZY DOG.", 255, 255, 255); - drawtext(vid_buf, 64, 192+34*CELLH, "0123456789 ~`!@#$%^&*()-=_+[]{}\\|;:'\",./<>?", 255, 255, 255); - - drawchar(vid_buf, 32, 192+32*CELLH, c, 255, 255, 255); - - sdl_blit(0, 0, XRES, YRES, vid_buf, XRES*4); - } - - f = fopen("font.bin", "w"); - fwrite(&xsize, 1, 1, f); - fwrite(&ysize, 1, 1, f); - fwrite(&base, 1, 1, f); - fwrite(&top, 1, 1, f); - fwrite(width, 1, 256, f); - fwrite(font, CELLW*CELLH, 256, f); - fclose(f); - - return 0; -} - -#endif |
