// init sets the system to its initial state void init(int *w, int *h) { bcm_host_init(); memset(state, 0, sizeof(*state)); oglinit(state); SansTypeface = loadfont(DejaVuSans_glyphPoints, DejaVuSans_glyphPointIndices, DejaVuSans_glyphInstructions, DejaVuSans_glyphInstructionIndices, DejaVuSans_glyphInstructionCounts, DejaVuSans_glyphAdvances, DejaVuSans_characterMap, DejaVuSans_glyphCount); SerifTypeface = loadfont(DejaVuSerif_glyphPoints, DejaVuSerif_glyphPointIndices, DejaVuSerif_glyphInstructions, DejaVuSerif_glyphInstructionIndices, DejaVuSerif_glyphInstructionCounts, DejaVuSerif_glyphAdvances, DejaVuSerif_characterMap, DejaVuSerif_glyphCount); MonoTypeface = loadfont(DejaVuSansMono_glyphPoints, DejaVuSansMono_glyphPointIndices, DejaVuSansMono_glyphInstructions, DejaVuSansMono_glyphInstructionIndices, DejaVuSansMono_glyphInstructionCounts, DejaVuSansMono_glyphAdvances, DejaVuSansMono_characterMap, DejaVuSansMono_glyphCount); *w = state->screen_width; *h = state->screen_height; }
void init_osd() { if (MAIN_OSD != NULL) { return; } MAIN_OSD = (OSD*)malloc(sizeof(OSD)); init(&MAIN_OSD->width, &MAIN_OSD->height); OpenSansSemiBold = loadfont(OpenSansSemibold_glyphPoints, OpenSansSemibold_glyphPointIndices, OpenSansSemibold_glyphInstructions, OpenSansSemibold_glyphInstructionIndices, OpenSansSemibold_glyphInstructionCounts, OpenSansSemibold_glyphAdvances, OpenSansSemibold_characterMap, OpenSansSemibold_glyphCount); OpenSansBold = loadfont(OpenSansBold_glyphPoints, OpenSansBold_glyphPointIndices, OpenSansBold_glyphInstructions, OpenSansBold_glyphInstructionIndices, OpenSansBold_glyphInstructionCounts, OpenSansBold_glyphAdvances, OpenSansBold_characterMap, OpenSansBold_glyphCount); };
void initfont(DC *dc, const char *fontstr) { if(!loadfont(dc, fontstr ? fontstr : DEFAULTFN)) { if(fontstr != NULL) fprintf(stderr, "cannot load font '%s'\n", fontstr); if(fontstr == NULL || !loadfont(dc, DEFAULTFN)) eprintf("cannot load font '%s'\n", DEFAULTFN); } dc->font.height = dc->font.ascent + dc->font.descent; }
Game::Game(const char* title, int x, int y, int width, int height) { SDL_Init(SDL_INIT_EVERYTHING); IMG_Init(IMG_INIT_PNG); if (TTF_Init() == -1) { printf("Unable to initialize SDL_ttf: %s \n", TTF_GetError()); } window = SDL_CreateWindow(title,x, y, WIDTH, HEIGHT, SDL_WINDOW_SHOWN); if(window == NULL) { cout << "WINDOW COULDN`T BE CREATED!" << endl; } renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED ); if(renderer == NULL) { cout << "RENDERER COULDN`T BE CREATED!" << endl; } font = loadfont("font.ttf" , 28); quit = false; information.score = 0; information.lives = 3; }
static void devcntrl(FILE *fp) { char line[200]; /* rest of the line saved here */ char cmd[20]; /* requested device command */ int num; /* font number, height, or slant */ char name[20]; /* name of the font */ /* * * Handles troff's device control commands. Unrecognized device control commands * are copied to the output file, and otherwise ignored. * */ fgets(line, sizeof(line), fp); sscanf(line, "%s", cmd); switch ( cmd[0] ) { case 'i': /* init */ case 't': /* trailer */ case 'p': /* pause */ case 's': /* stop */ break; case 'T': /* typesetter name */ sscanf(line, "%*s %10s", dwb_devname); break; case 'r': /* resolution */ sscanf(line, "%*s %d %d %d", &res, &hort, &vert); break; case 'f': /* mount a font */ sscanf(line, "%*s %d %s", &num, name); loadfont(num, name); break; case 'H': /* height */ sscanf(line, "%*s %d", &height); break; case 'S': /* slant */ sscanf(line, "%*s %d", &slant); break; default: /* ignore anything not recognized */ break; } /* End switch */ put_string(line, fp_out); } /* End of devcntrl */
void SdlDisplay::sdlDrawFont(int r, int g, int b, int w, int h, const std::string &fd, size_t size, const std::string &getValue) { font = loadfont(fd, size); drawcoloredfont(&fontapply, getValue, r, g, b); sdlSetRect(&rtmp, w, h, 0, 0); SDL_BlitSurface(fontapply, NULL, screen, &rtmp); }
void engine_init() { SDL_Init(SDL_INIT_EVERYTHING); if (TTF_Init()==-1) { std::cout << "unable to init ttf" << std::endl; } menu_font = loadfont("data/visitor1.ttf",10); if (menu_font==0) { std::cout << "unable to load menu font" << std::endl; } }
static FONT *try_load_font(const CHAR *path) { FILE *pf = NULL; FONT *f = NULL; if ((pf = fopen(path, "r"))) { f = loadfont(pf); fclose(pf); } return (f); }
// init sets the system to its initial state void init(int *w, int *h) { bcm_host_init(); memset(state, 0, sizeof(*state)); state->window_x = init_x; state->window_y = init_y; state->window_width = init_w; state->window_height = init_h; oglinit(state); SansTypeface = loadfont(DejaVuSans_glyphPoints, DejaVuSans_glyphPointIndices, DejaVuSans_glyphInstructions, DejaVuSans_glyphInstructionIndices, DejaVuSans_glyphInstructionCounts, DejaVuSans_glyphAdvances, DejaVuSans_characterMap, DejaVuSans_glyphCount); SansTypeface.descender_height = DejaVuSans_descender_height; SansTypeface.font_height = DejaVuSans_font_height; SerifTypeface = loadfont(DejaVuSerif_glyphPoints, DejaVuSerif_glyphPointIndices, DejaVuSerif_glyphInstructions, DejaVuSerif_glyphInstructionIndices, DejaVuSerif_glyphInstructionCounts, DejaVuSerif_glyphAdvances, DejaVuSerif_characterMap, DejaVuSerif_glyphCount); SerifTypeface.descender_height = DejaVuSerif_descender_height; SerifTypeface.font_height = DejaVuSerif_font_height; MonoTypeface = loadfont(DejaVuSansMono_glyphPoints, DejaVuSansMono_glyphPointIndices, DejaVuSansMono_glyphInstructions, DejaVuSansMono_glyphInstructionIndices, DejaVuSansMono_glyphInstructionCounts, DejaVuSansMono_glyphAdvances, DejaVuSansMono_characterMap, DejaVuSansMono_glyphCount); MonoTypeface.descender_height = DejaVuSansMono_descender_height; MonoTypeface.font_height = DejaVuSansMono_font_height; *w = state->window_width; *h = state->window_height; }
void dochar(Rune r[]) { char *s, *fb; Font *f; Point p; int fontno, fm, i; char buf[32]; fontno = curfont; if((s = map(r, curfont)) == 0) { /* not on current font */ if ((s = map(r, specfont)) != 0) /* on special font */ fontno = specfont; else { /* look for fallback */ fm = pos2fontmap[curfont]; fb = fontmap[fm].fallback; if(fb) { /* see if fallback is mounted */ for(i = 0; i < NFONT; i++) { if(eq(fb, fontmap[pos2fontmap[i]].troffname)) { s = map(r, i); if(s) { fontno = i; goto found; } } } } /* no such char; use name itself on defont */ /* this is not a general solution */ p.x = hpos/DIV + xyoffset.x + offset.x; p.y = vpos/DIV + xyoffset.y + offset.y; p.y -= font->ascent; snprint(buf, sizeof buf, "%S", r); string(screen, p, display->black, ZP, font, buf); return; } } found: p.x = hpos/DIV + xyoffset.x + offset.x; p.y = vpos/DIV + xyoffset.y + offset.y; while ((f = fonttab[fontno][cursize]) == 0) loadfont(fontno, cursize); p.y -= f->ascent; dprint(2, "putting %S at %d,%d font %d, size %d\n", r, p.x, p.y, fontno, cursize); string(screen, p, display->black, ZP, f, s); }
void gli_initialize_fonts(void) { float monoaspect = gli_conf_monoaspect; float propaspect = gli_conf_propaspect; float monosize = gli_conf_monosize; float propsize = gli_conf_propsize; int err; int i; for (i = 0; i < 256; i++) gammamap[i] = pow(i / 255.0, gli_conf_gamma) * 255.0; err = FT_Init_FreeType(&ftlib); if (err) winabort("FT_Init_FreeType"); /* replace built-in fonts with configured system font */ fontload(); fontreplace(gli_conf_monofont, MONOF); fontreplace(gli_conf_propfont, PROPF); fontunload(); /* create oblique transform matrix */ ftmat.xx = 0x10000L; ftmat.yx = 0x00000L; ftmat.xy = 0x03000L; ftmat.yy = 0x10000L; loadfont(&gfont_table[0], gli_conf_monor, monosize, monoaspect, FONTR); loadfont(&gfont_table[1], gli_conf_monob, monosize, monoaspect, FONTB); loadfont(&gfont_table[2], gli_conf_monoi, monosize, monoaspect, FONTI); loadfont(&gfont_table[3], gli_conf_monoz, monosize, monoaspect, FONTZ); loadfont(&gfont_table[4], gli_conf_propr, propsize, propaspect, FONTR); loadfont(&gfont_table[5], gli_conf_propb, propsize, propaspect, FONTB); loadfont(&gfont_table[6], gli_conf_propi, propsize, propaspect, FONTI); loadfont(&gfont_table[7], gli_conf_propz, propsize, propaspect, FONTZ); loadglyph(&gfont_table[0], '0'); gli_cellh = gli_leading; gli_cellw = (gfont_table[0].lowadvs['0'] + GLI_SUBPIX - 1) / GLI_SUBPIX; }
void setup_environment(Char *argv[], boolean *canbeplotted) { boolean firsttree; char* treestr; /* Set up all kinds of fun stuff */ #ifdef MAC OSErr retcode; FInfo fndrinfo; macsetup("Drawgram","Preview"); #endif #ifdef TURBOC if ((registerbgidriver(EGAVGA_driver) <0) || (registerbgidriver(Herc_driver) <0) || (registerbgidriver(CGA_driver) <0)){ printf("Graphics error: %s ",grapherrormsg(graphresult())); exit(-1);} #endif printf("DRAWGRAM from PHYLIP version %s\n",VERSION); printf("Reading tree ... \n"); firsttree = true; treestr = ajStrGetuniquePtr(&phylotrees[0]->Tree); allocate_nodep(&nodep, treestr, &spp); treeread (&treestr, &root, treenode, &goteof, &firsttree, nodep, &nextnode, &haslengths, &grbg, initdrawgramnode,true,-1); root->oldlen = 0.0; printf("Tree has been read.\n"); printf("Loading the font .... \n"); loadfont(font,argv[0]); printf("Font loaded.\n"); previewing = false; ansi = ANSICRT; ibmpc = IBMCRT; firstscreens = true; initialparms(); (*canbeplotted) = false; } /* setup_environment */
static JSBool js_conio_loadfont(JSContext *cx, uintN argc, jsval *arglist) { jsval *argv=JS_ARGV(cx, arglist); char * str; jsrefcount rc; if(argc==1) { JSVALUE_TO_MSTRING(cx, argv[0], str, NULL); HANDLE_PENDING(cx); if(str != NULL) { rc=JS_SUSPENDREQUEST(cx); JS_SET_RVAL(cx, arglist,INT_TO_JSVAL(loadfont(str))); free(str); JS_RESUMEREQUEST(cx, rc); return(JS_TRUE); } } return(JS_FALSE); }
void devcntrl(FILE *fp) /* interpret device control functions */ { char str[4096]; int n; sget(str, sizeof str, fp); switch (str[0]) { /* crude for now */ case 'i': /* initialize */ fileinit(); t_init(0); break; case 'T': /* device name */ sget(devname, sizeof devname, fp); break; case 't': /* trailer */ t_trailer(); break; case 'p': /* pause -- can restart */ t_reset('p'); break; case 's': /* stop */ t_reset('s'); break; case 'r': /* resolution assumed when prepared */ fscanf(fp, "%d", &res); break; case 'f': /* font used */ fscanf(fp, "%d", &n); sget(str, sizeof str, fp); loadfont(n, str); break; } while (getc(fp) != '\n') /* skip rest of input line */ ; }
void initpc() { char *p; // allegro_init(); get_executable_name(pcempath,511); pclog("executable_name = %s\n", pcempath); p=get_filename(pcempath); *p=0; pclog("path = %s\n", pcempath); fdd_init(); keyboard_init(); mouse_init(); joystick_init(); midi_init(); loadconfig(NULL); pclog("Config loaded\n"); loadfont("mda.rom", 0, cga_fontdat, cga_fontdatm); loadfont("roms/pc1512/40078.ic127", 0, pc1512_fontdat, pc1512_fontdatm); loadfont("roms/pc200/40109.bin", 0, pc200_fontdat, pc200_fontdatm); codegen_init(); cpuspeed2=(AT)?2:1; // cpuspeed2=cpuspeed; atfullspeed=0; device_init(); initvideo(); mem_init(); loadbios(); mem_add_bios(); timer_reset(); sound_reset(); fdc_init(); // #ifdef USE_NETWORKING vlan_reset(); //NETWORK network_card_init(network_card_current); // #endif loaddisc(0,discfns[0]); loaddisc(1,discfns[1]); //loadfont(); loadnvr(); sound_init(); resetide(); #if __unix if (cdrom_drive == -1) cdrom_null_open(cdrom_drive); else #endif ioctl_open(cdrom_drive); pit_reset(); /* if (romset==ROM_AMI386 || romset==ROM_AMI486) */fullspeed(); ali1429_reset(); // CPUID=(is486 && (cpuspeed==7 || cpuspeed>=9)); // pclog("Init - CPUID %i %i\n",CPUID,cpuspeed); shadowbios=0; #if __unix if (cdrom_drive == -1) cdrom_null_reset(); else #endif ioctl_reset(); }
void loadmedia() { cnc_head = loadimage("arch/simulator/media/cnc_head.bmp"); font = loadfont("arch/simulator/media/FreeSans.ttf", POINTSIZE); }
int main(int argc, char *argv[]) { IxpMsg m; char **oargv; char *wmiirc, *s; int i; quotefmtinstall(); fmtinstall('r', errfmt); fmtinstall('a', afmt); fmtinstall('C', Cfmt); extern int fmtevent(Fmt*); fmtinstall('E', fmtevent); wmiirc = "wmiirc"; oargv = argv; ARGBEGIN{ case 'a': address = EARGF(usage()); break; case 'r': wmiirc = EARGF(usage()); break; case 'v': print("%s", version); exit(0); case 'D': s = EARGF(usage()); m = ixp_message(s, strlen(s), 0); msg_debug(&m); break; default: usage(); break; }ARGEND; if(argc) usage(); setlocale(LC_CTYPE, ""); starting = true; initdisplay(); traperrors(true); selectinput(&scr.root, EnterWindowMask | SubstructureRedirectMask); if(traperrors(false)) fatal("another window manager is already running"); passwd = getpwuid(getuid()); user = estrdup(passwd->pw_name); init_environment(); fmtinstall('F', Ffmt); ixp_printfcall = printfcall; sock = ixp_announce(address); if(sock < 0) fatal("Can't create socket '%s': %r", address); closeexec(ConnectionNumber(display)); closeexec(sock); if(wmiirc[0]) spawn_command(wmiirc); init_traps(); init_cursors(); init_lock_keys(); ewmh_init(); xext_init(); srv.preselect = check_preselect; ixp_listen(&srv, sock, &p9srv, serve_9pcon, nil); ixp_listen(&srv, ConnectionNumber(display), nil, check_x_event, closedisplay); def.border = 1; def.colmode = Colstack; def.font = loadfont(FONT); def.incmode = ISqueeze; def.mod = Mod1Mask; strcpy(def.grabmod, "Mod1"); loadcolor(&def.focuscolor, FOCUSCOLORS); loadcolor(&def.normcolor, NORMCOLORS); disp.sel = pointerscreen(); init_screens(); root_init(); disp.focus = nil; setfocus(screen->barwin, RevertToParent); view_select("1"); scan_wins(); starting = false; view_update_all(); ewmh_updateviews(); event("FocusTag %s\n", selview->name); i = ixp_serverloop(&srv); if(i) fprint(2, "%s: error: %r\n", argv0); else event("Quit"); cleanup(); if(exitsignal) raise(exitsignal); if(execstr) { char *toks[32]; int n; n = unquote(strdup(execstr), toks, nelem(toks)-1); toks[n] = nil; execvp(toks[0], toks); fprint(2, "%s: failed to exec %q: %r\n", argv0, execstr); execvp(argv0, oargv); fatal("failed to exec myself"); } return i; }
static int gra2cairo_output(struct objlist *obj, N_VALUE *inst, N_VALUE *rval, int argc, char **argv) { char code, *cstr, *tmp; int *cpar, i, r, font_style; double x, y, w, h, fontsize, fontspace, fontdir, fontsin, fontcos, a1, a2; cairo_line_join_t join; cairo_line_cap_t cap; double *dashlist = NULL; struct gra2cairo_local *local; local = (struct gra2cairo_local *)argv[2]; code = *(char *)(argv[3]); cpar = (int *)argv[4]; cstr = argv[5]; if (local->cairo == NULL) return -1; if (code != 'T') { gra2cairo_draw_path(local); } switch (code) { case 'I': gra2cairo_set_antialias(local, local->antialias); local->linetonum = 0; r = check_cairo_status(local->cairo); if (r) { error(obj, r); return 1; } case '%': case 'X': break; case 'E': r = check_cairo_status(local->cairo); if (r) { error(obj, r); return 1; } break; case 'V': local->offsetx = mxd2pw(local, cpar[1]); local->offsety = mxd2ph(local, cpar[2]); cairo_new_path(local->cairo); if (cpar[5]) { x = mxd2pw(local, cpar[1]); y = mxd2ph(local, cpar[2]); w = mxd2pw(local, cpar[3]) - x; h = mxd2ph(local, cpar[4]) - y; cairo_reset_clip(local->cairo); cairo_rectangle(local->cairo, x, y, w, h); cairo_clip(local->cairo); } else { cairo_reset_clip(local->cairo); } if (local->region) { gra2cairo_clip_region(local, local->region); } break; case 'A': if (cpar[1] == 0) { cairo_set_dash(local->cairo, NULL, 0, 0); } else { dashlist = g_malloc(sizeof(* dashlist) * cpar[1]); if (dashlist == NULL) break; for (i = 0; i < cpar[1]; i++) { dashlist[i] = mxd2pw(local, cpar[6 + i]); if (dashlist[i] <= 0) { dashlist[i] = 1; } } cairo_set_dash(local->cairo, dashlist, cpar[1], 0); g_free(dashlist); } cairo_set_line_width(local->cairo, mxd2pw(local, cpar[2])); if (cpar[3] == 2) { cap = CAIRO_LINE_CAP_SQUARE; } else if (cpar[3] == 1) { cap = CAIRO_LINE_CAP_ROUND; } else { cap = CAIRO_LINE_CAP_BUTT; } cairo_set_line_cap(local->cairo, cap); if (cpar[4] == 2) { join = CAIRO_LINE_JOIN_BEVEL; } else if (cpar[4] == 1) { join = CAIRO_LINE_JOIN_ROUND; } else { join = CAIRO_LINE_JOIN_MITER; } cairo_set_line_join(local->cairo, join); break; case 'G': if (local->use_opacity && cpar[0] > 3 && cpar[4] < 255) { cairo_set_source_rgba(local->cairo, cpar[1] / 255.0, cpar[2] / 255.0, cpar[3] / 255.0, cpar[4] / 255.0); } else { cairo_set_source_rgb(local->cairo, cpar[1] / 255.0, cpar[2] / 255.0, cpar[3] / 255.0); } break; case 'M': cairo_move_to(local->cairo, mxd2px(local, cpar[1]), mxd2py(local, cpar[2])); break; case 'N': relative_move(local->cairo, mxd2pw(local, cpar[1]), mxd2ph(local, cpar[2])); break; case 'L': cairo_new_path(local->cairo); cairo_move_to(local->cairo, mxd2px(local, cpar[1]), mxd2py(local, cpar[2])); cairo_line_to(local->cairo, mxd2px(local, cpar[3]), mxd2py(local, cpar[4])); cairo_stroke(local->cairo); break; case 'T': cairo_line_to(local->cairo, mxd2px(local, cpar[1]), mxd2py(local, cpar[2])); local->linetonum++; break; case 'C': x = mxd2px(local, cpar[1] - cpar[3]); y = mxd2py(local, cpar[2] - cpar[4]); w = mxd2pw(local, cpar[3]); h = mxd2ph(local, cpar[4]); a1 = cpar[5] * (M_PI / 18000.0); a2 = cpar[6] * (M_PI / 18000.0) + a1; if (w == 0 || h == 0 || a1 == a2) break; cairo_new_path(local->cairo); cairo_save(local->cairo); cairo_translate(local->cairo, x + w, y + h); cairo_scale(local->cairo, w, h); cairo_arc_negative(local->cairo, 0., 0., 1., -a1, -a2); cairo_restore (local->cairo); switch (cpar[7]) { case 1: cairo_line_to(local->cairo, x + w, y + h); /* fall through */ case 2: cairo_close_path(local->cairo); cairo_fill(local->cairo); break; case 3: cairo_line_to(local->cairo, x + w, y + h); /* fall through */ case 4: cairo_close_path(local->cairo); cairo_stroke(local->cairo); break; default: cairo_stroke(local->cairo); } break; case 'B': cairo_new_path(local->cairo); if (cpar[1] <= cpar[3]) { x = mxd2px(local, cpar[1]); w = mxd2pw(local, cpar[3] - cpar[1]); } else { x = mxd2px(local, cpar[3]); w = mxd2pw(local, cpar[1] - cpar[3]); } if (cpar[2] <= cpar[4]) { y = mxd2py(local, cpar[2]); h = mxd2ph(local, cpar[4] - cpar[2]); } else { y = mxd2py(local, cpar[4]); h = mxd2ph(local, cpar[2] - cpar[4]); } cairo_rectangle(local->cairo, x, y, w, h); if (cpar[5] == 0) { cairo_stroke(local->cairo); } else { cairo_fill(local->cairo); } break; case 'P': cairo_new_path(local->cairo); cairo_arc(local->cairo, mxd2px(local, cpar[1]), mxd2py(local, cpar[2]), mxd2pw(local, 1), 0, 2 * M_PI); cairo_fill(local->cairo); break; case 'R': cairo_new_path(local->cairo); if (cpar[1] == 0) break; for (i = 0; i < cpar[1]; i++) { cairo_line_to(local->cairo, mxd2px(local, cpar[i * 2 + 2]), mxd2py(local, cpar[i * 2 + 3])); } cairo_stroke(local->cairo); break; case 'D': cairo_new_path(local->cairo); if (cpar[1] == 0) break; for (i = 0; i < cpar[1]; i++) { cairo_line_to(local->cairo, mxd2px(local, cpar[i * 2 + 3]), mxd2py(local, cpar[i * 2 + 4])); } cairo_close_path(local->cairo); switch (cpar[2]) { case 0: cairo_stroke(local->cairo); break; case 1: cairo_set_fill_rule(local->cairo, CAIRO_FILL_RULE_EVEN_ODD); cairo_fill(local->cairo); break; case 2: cairo_set_fill_rule(local->cairo, CAIRO_FILL_RULE_WINDING); cairo_fill(local->cairo); break; } break; case 'F': g_free(local->fontalias); local->fontalias = g_strdup(cstr); break; case 'H': fontspace = cpar[2] / 72.0 * 25.4; local->fontspace = fontspace; fontsize = cpar[1] / 72.0 * 25.4; local->fontsize = fontsize; fontdir = cpar[3] * MPI / 18000.0; fontsin = sin(fontdir); fontcos = cos(fontdir); local->fontdir = (cpar[3] % 36000) / 100.0; if (local->fontdir < 0) { local->fontdir += 360; } local->fontsin = fontsin; local->fontcos = fontcos; font_style = (cpar[0] > 3) ? cpar[4] : -1; local->loadfont = loadfont(local->fontalias, font_style, &local->symbol); break; case 'S': if (local->loadfont == NULL) break; tmp = gra2cairo_get_utf8_str(cstr, local->symbol); if (tmp) { draw_str(local, TRUE, tmp, local->loadfont, local->fontsize, local->fontspace, NULL, NULL, NULL); g_free(tmp); } break; case 'K': if (local->loadfont == NULL) break; tmp = sjis_to_utf8(cstr); if (tmp) { draw_str(local, TRUE, tmp, local->loadfont, local->fontsize, local->fontspace, NULL, NULL, NULL); g_free(tmp); } break; default: break; } return 0; }
int gra2cairo_strwidth(struct objlist *obj, N_VALUE *inst, N_VALUE *rval, int argc, char **argv) { struct gra2cairo_local *local; gchar *font, *str; double size, dir, s,c ; int width, style, symbol; struct fontmap *fcur; str = argv[3]; size = ( * (int *) argv[4]) / 72.0 * 25.4; font = argv[5]; style = * (int *) (argv[6]); if (size == 0) { rval->i = 0; return 0; } if (_getobj(obj, "_local", inst, &local)) return 1; if (local->cairo == NULL) return 0; fcur = loadfont(font, style, &symbol); if (fcur == NULL) { rval->i = nround(size * 0.600); return 0; } dir = local->fontdir; s = local->fontsin; c = local->fontcos; local->fontdir = 0; local->fontsin = 0; local->fontcos = 1; if (symbol) { char *ptr; ptr = ascii2greece(str); if (ptr == NULL) { return 1; } str = ptr; } draw_str(local, FALSE, str, fcur, size, 0, &width, NULL, NULL); if (symbol) { g_free(str); } rval->i = mxp2dw(local, width); local->fontsin = s; local->fontcos = c; local->fontdir = dir; return 0; }
int gra2cairo_charheight(struct objlist *obj, N_VALUE *inst, N_VALUE *rval, int argc, char **argv) { struct gra2cairo_local *local; char *font; double size, dir, s, c; char *func; int height, descent, ascent, style, symbol; struct fontmap *fcur; func = (char *)argv[1]; size = (*(int *)(argv[3])) / 72.0 * 25.4; font = (char *)(argv[4]); style = *(int *) (argv[5]); if (size == 0) { rval->i = 0; return 0; } if (_getobj(obj, "_local", inst, &local)) return 1; if (local->cairo == NULL) return 1; if (strcmp0(func, "_charascent") == 0) { height = TRUE; } else { height = FALSE; } fcur = loadfont(font, style, &symbol); if (fcur == NULL) { if (height) { rval->i = nround(size * 0.562); } else { rval->i = nround(size * 0.250); } return 0; } dir = local->fontdir; s = local->fontsin; c = local->fontcos; local->fontdir = 0; local->fontsin = 0; local->fontcos = 1; draw_str(local, FALSE, "A", fcur, size, 0, NULL, &ascent, &descent); if (height) { rval->i = mxp2dh(local, ascent); } else { rval->i = mxp2dh(local, descent); } local->fontsin = s; local->fontcos = c; local->fontdir = dir; return 0; }
/* * Go look for a VGA card on the PCI-bus. This search is a * stripped down version of the PCI-probe. It only looks on * bus0 for VGA cards. The first card found is used. */ int check_for_vga() { pci_chipset_tag_t pc = NULL; /* XXX */ pcitag_t tag; int device, found, id, maxndevs, i, j; volatile u_char *regs; u_char *fb; char *nbd = "NetBSD/Atari"; found = 0; tag = 0; id = 0; maxndevs = pci_bus_maxdevs(pc, 0); /* * These are setup in atari_init.c */ regs = (volatile caddr_t)pci_io_addr; fb = (caddr_t)pci_mem_addr; for (device = 0; !found && (device < maxndevs); device++) { tag = pci_make_tag(pc, 0, device, 0); id = pci_conf_read(pc, tag, PCI_ID_REG); if (id == 0 || id == 0xffffffff) continue; switch (id = PCI_PRODUCT(id)) { /* * XXX Make the inclusion of the cases dependend * on config options! */ case PCI_PRODUCT_TSENG_ET6000: case PCI_PRODUCT_TSENG_ET4000_W32P_A: case PCI_PRODUCT_TSENG_ET4000_W32P_B: case PCI_PRODUCT_TSENG_ET4000_W32P_C: case PCI_PRODUCT_TSENG_ET4000_W32P_D: tseng_init(pc, tag, id, regs, fb); found = 1; break; default: break; } } if (!found) return (0); /* * Generic parts of the initialization... */ /* B&W colors */ vgaw(regs, VDAC_ADDRESS_W, 0); for (i = 0; i < 256; i++) { j = (i & 1) ? ((i > 7) ? 2 : 1) : 0; vgaw(regs, VDAC_DATA, conscolors[j][0]); vgaw(regs, VDAC_DATA, conscolors[j][1]); vgaw(regs, VDAC_DATA, conscolors[j][2]); } loadfont(regs, fb); /* * Clear the screen and print a message. The latter * is of diagnostic/debug use only. */ for (i = 50 * 80; i >= 0; i -= 2) { fb[i] = 0x20; fb[i+1] = 0x07; } for (i = 56; *nbd; i += 2) fb[i] = *nbd++; return (1); }
int main(int argc, char *argv[]) { char *wmiirc; WMScreen *s; WinAttr wa; int i; fmtinstall('r', errfmt); fmtinstall('C', Cfmt); wmiirc = "wmiistartrc"; ARGBEGIN{ case 'v': print("%s", version); exit(0); case 'V': verbose = True; break; case 'a': address = EARGF(usage()); break; case 'r': wmiirc = EARGF(usage()); break; default: usage(); break; }ARGEND; if(argc) usage(); setlocale(LC_CTYPE, ""); starting = True; initdisplay(); xlib_errorhandler = XSetErrorHandler(errorhandler); check_other_wm = True; XSelectInput(display, scr.root.w, SubstructureRedirectMask | EnterWindowMask); XSync(display, False); check_other_wm = False; passwd = getpwuid(getuid()); user = estrdup(passwd->pw_name); init_environment(); sock = ixp_announce(address); if(sock < 0) fatal("Can't create socket '%s': %r", address); if(wmiirc) spawn_command(wmiirc); init_traps(); init_atoms(); init_cursors(); init_lock_keys(); srv.preselect = check_preselect; ixp_listen(&srv, sock, &p9srv, serve_9pcon, nil); ixp_listen(&srv, ConnectionNumber(display), nil, check_x_event, closedisplay); def.font = loadfont(FONT); def.border = 1; def.colmode = Coldefault; def.mod = Mod1Mask; strcpy(def.grabmod, "Mod1"); loadcolor(&def.focuscolor, FOCUSCOLORS); loadcolor(&def.normcolor, NORMCOLORS); num_screens = 1; screens = emallocz(num_screens * sizeof(*screens)); screen = &screens[0]; for(i = 0; i < num_screens; i++) { s = &screens[i]; init_screen(s); s->ibuf = allocimage(Dx(s->r), Dy(s->r), scr.depth); wa.event_mask = SubstructureRedirectMask | SubstructureNotifyMask | EnterWindowMask | LeaveWindowMask | FocusChangeMask; wa.cursor = cursor[CurNormal]; setwinattr(&scr.root, &wa, CWEventMask | CWCursor); initbar(s); } screen->focus = nil; setfocus(screen->barwin, RevertToParent); scan_wins(); starting = False; select_view("nil"); update_views(); write_event("FocusTag %s\n", screen->sel->name); check_x_event(nil); i = ixp_serverloop(&srv); if(i) fprint(2, "%s: error: %r\n", argv0); cleanup(); if(exitsignal) raise(exitsignal); if(execstr) execl("/bin/sh", "sh", "-c", execstr, nil); return i; }
char * message_root(void *p, IxpMsg *m) { Font *fn; char *s, *ret; ulong n; USED(p); ret = nil; s = getword(m); switch(getsym(s)) { case LQUIT: srv.running = 0; break; case LEXEC: execstr = smprint("exec %s", (char*)m->pos); srv.running = 0; break; case LVIEW: select_view((char*)m->pos); break; case LSELCOLORS: fprint(2, "%s: warning: selcolors have been removed\n", argv0); return Ebadcmd; case LFOCUSCOLORS: ret = parse_colors(m, &def.focuscolor); focus_view(screen, screen->sel); break; case LNORMCOLORS: ret = parse_colors(m, &def.normcolor); focus_view(screen, screen->sel); break; case LFONT: fn = loadfont((char*)m->pos); if(fn) { freefont(def.font); def.font = fn; resize_bar(screen); }else ret = "can't load font"; focus_view(screen, screen->sel); break; case LBORDER: if(!getulong(getword(m), &n)) return Ebadvalue; def.border = n; focus_view(screen, screen->sel); break; case LGRABMOD: s = getword(m); n = str2modmask(s); if((n & (Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)) == 0) return Ebadvalue; utflcpy(def.grabmod, s, sizeof(def.grabmod)); def.mod = n; break; default: return Ebadcmd; } return ret; }
void picked(int b,vector<int>&v, int x, int y) { loadfont(fnfl); }