glut_bitmap.c

来自「mesa-6.5-minigui源码」· C语言 代码 · 共 58 行

C
58
字号
/* Copyright (c) Mark J. Kilgard, 1994. *//* This program is freely distributable without licensing fees   and is provided without guarantee or warrantee expressed or   implied. This program is -not- in the public domain. */#include "glutint.h"#include "glutbitmap.h"void APIENTRY glutBitmapCharacter(GLUTbitmapFont font, int c){  const BitmapCharRec *ch;  BitmapFontPtr fontinfo;  GLint swapbytes, lsbfirst, rowlength;  GLint skiprows, skippixels, alignment;#if defined(_WIN32)  fontinfo = (BitmapFontPtr) __glutFont(font);#else  fontinfo = (BitmapFontPtr) font;#endif  if (c < fontinfo->first ||    c >= fontinfo->first + fontinfo->num_chars)    return;  ch = fontinfo->ch[c - fontinfo->first];  if (ch) {    /* Save current modes. */    glGetIntegerv(GL_UNPACK_SWAP_BYTES, &swapbytes);    glGetIntegerv(GL_UNPACK_LSB_FIRST, &lsbfirst);    glGetIntegerv(GL_UNPACK_ROW_LENGTH, &rowlength);    glGetIntegerv(GL_UNPACK_SKIP_ROWS, &skiprows);    glGetIntegerv(GL_UNPACK_SKIP_PIXELS, &skippixels);    glGetIntegerv(GL_UNPACK_ALIGNMENT, &alignment);    /* Little endian machines (DEC Alpha for example) could       benefit from setting GL_UNPACK_LSB_FIRST to GL_TRUE       instead of GL_FALSE, but this would require changing the       generated bitmaps too. */    glPixelStorei(GL_UNPACK_SWAP_BYTES, GL_FALSE);    glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE);    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);    glPixelStorei(GL_UNPACK_SKIP_ROWS, 0);    glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);    glBitmap(ch->width, ch->height, ch->xorig, ch->yorig,      ch->advance, 0, ch->bitmap);    /* Restore saved modes. */    glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes);    glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst);    glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength);    glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows);    glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels);    glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?