예제 #1
0
파일: Glut.cs 프로젝트: kgfathur/nzy3d-api
        private static void bitmapCharacterImpl(int font, char cin)
        {
            BitmapFontRec fontinfo = getBitmapFont(font);
            int           c        = (int)cin & 0xffff;

            if (c < fontinfo.first | c >= fontinfo.first + fontinfo.num_chars)
            {
                return;
            }
            BitmapCharRec ch = fontinfo.ch[c - fontinfo.first];

            if ((ch != null))
            {
                GL.Bitmap(ch.width, ch.height, ch.xorig, ch.yorig, ch.advance, 0, ch.bitmap);
            }
        }
예제 #2
0
파일: Glut.cs 프로젝트: kgfathur/nzy3d-api
        private static BitmapFontRec getBitmapFont(int font)
        {
            BitmapFontRec rec = bitmapFonts[font];

            if ((rec == null))
            {
                switch (font)
                {
                case BITMAP_9_BY_15:
                    rec = GLUTBitmap9x15.glutBitmap9By15;
                    break;

                case BITMAP_8_BY_13:
                    rec = GLUTBitmap8x13.glutBitmap8By13;
                    break;

                case BITMAP_TIMES_ROMAN_10:
                    rec = GLUTBitmapTimesRoman10.glutBitmapTimesRoman10;
                    break;

                case BITMAP_TIMES_ROMAN_24:
                    rec = GLUTBitmapTimesRoman24.glutBitmapTimesRoman24;
                    break;

                case BITMAP_HELVETICA_10:
                    rec = GLUTBitmapHelvetica10.glutBitmapHelvetica10;
                    break;

                case BITMAP_HELVETICA_12:
                    rec = GLUTBitmapHelvetica12.glutBitmapHelvetica12;
                    break;

                case BITMAP_HELVETICA_18:
                    rec = GLUTBitmapHelvetica18.glutBitmapHelvetica18;
                    break;

                default:
                    throw new Exception("Unknown bitmap font number :" + font);
                }
                bitmapFonts[font] = rec;
            }
            return(rec);
        }
예제 #3
0
파일: Glut.cs 프로젝트: kgfathur/nzy3d-api
        public static int BitmapLength(int font, string s)
        {
            BitmapFontRec fontinfo = getBitmapFont(font);
            float         length   = 0;
            int           len      = s.Length;

            for (int pos = 0; pos <= len - 1; pos++)
            {
                int c = (int)s.ToCharArray(pos, 1)[0] & 0xffff;
                if ((c >= fontinfo.first & c < fontinfo.first + fontinfo.num_chars))
                {
                    BitmapCharRec ch = fontinfo.ch[c - fontinfo.first];
                    if ((ch != null))
                    {
                        length += ch.advance;
                    }
                }
            }
            return((int)length);
        }