디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

마인크래프트 소스는 공개됬는데.. 한글화를 몬하겠음 ㅠㅠ

빈지노(221.162) 2011.01.26 00:43:40
조회 676 추천 0 댓글 12


package net.minecraft.src;
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) braces deadcode

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.nio.IntBuffer;
import javax.imageio.ImageIO;
import org.lwjgl.opengl.GL11;

public class FontRenderer
{

    public FontRenderer(GameSettings gamesettings, String s, RenderEngine renderengine)
    {
        charWidth = new int[256];
        fontTextureName = 0;
        buffer = GLAlcreateDirectIntBuffer(1024 /*GL_FRONT_LEFT*/);
        BufferedImage bufferedimage;
        try
        {
            bufferedimage = ImageIO.read((RenderEngine.class).getResourceAsStream(s));
        }
        catch(IOException ioexception)
        {
            throw new RuntimeException(ioexception);
        }
        int i = bufferedimage.getWidth();
        int j = bufferedimage.getHeight();
        int ai[] = new int[i * j];
        bufferedimage.getRGB(0, 0, i, j, ai, 0, i);
        for(int k = 0; k < 256; k++)
        {
            int l = k % 16;
            int k1 = k / 16;
            int j2 = 7;
            do
            {
                if(j2 < 0)
                {
                    break;
                }
                int i3 = l * 8 + j2;
                boolean flag = true;
                for(int l3 = 0; l3 < 8 && flag; l3++)
                {
                    int i4 = (k1 * 8 + l3) * i;
                    int k4 = ai[i3 + i4] & 0xff;
                    if(k4 > 0)
                    {
                        flag = false;
                    }
                }

                if(!flag)
                {
                    break;
                }
                j2--;
            } while(true);
            if(k == 32)
            {
                j2 = 2;
            }
            charWidth[k] = j2 + 2;
        }

        fontTextureName = renderengine.allocateAndSetupTexture(bufferedimage);
        fontDisplayLists = GLAlgenerateDisplayLists(288);
        Tessellator tessellator = Tessellator.instance;
        for(int i1 = 0; i1 < 256; i1++)
        {
            GL11.glNewList(fontDisplayLists + i1, 4864 /*GL_COMPILE*/);
            tessellator.startDrawingQuads();
            int l1 = (i1 % 16) * 8;
            int k2 = (i1 / 16) * 8;
            float f = 7.99F;
            float f1 = 0.0F;
            float f2 = 0.0F;
            tessellator.addVertexWithUV(0.0D, 0.0F + f, 0.0D, (float)l1 / 128F + f1, ((float)k2 + f) / 128F + f2);
            tessellator.addVertexWithUV(0.0F + f, 0.0F + f, 0.0D, ((float)l1 + f) / 128F + f1, ((float)k2 + f) / 128F + f2);
            tessellator.addVertexWithUV(0.0F + f, 0.0D, 0.0D, ((float)l1 + f) / 128F + f1, (float)k2 / 128F + f2);
            tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, (float)l1 / 128F + f1, (float)k2 / 128F + f2);
            tessellator.draw();
            GL11.glTranslatef(charWidth[i1], 0.0F, 0.0F);
            GL11.glEndList();
        }

        for(int j1 = 0; j1 < 32; j1++)
        {
            int i2 = (j1 >> 3 & 1) * 85;
            int l2 = (j1 >> 2 & 1) * 170 + i2;
            int j3 = (j1 >> 1 & 1) * 170 + i2;
            int k3 = (j1 >> 0 & 1) * 170 + i2;
            if(j1 == 6)
            {
                l2 += 85;
            }
            boolean flag1 = j1 >= 16;
            if(gamesettings.anaglyph)
            {
                int j4 = (l2 * 30 + j3 * 59 + k3 * 11) / 100;
                int l4 = (l2 * 30 + j3 * 70) / 100;
                int i5 = (l2 * 30 + k3 * 70) / 100;
                l2 = j4;
                j3 = l4;
                k3 = i5;
            }
            if(flag1)
            {
                l2 /= 4;
                j3 /= 4;
                k3 /= 4;
            }
            GL11.glNewList(fontDisplayLists + 256 + j1, 4864 /*GL_COMPILE*/);
            GL11.glColor3f((float)l2 / 255F, (float)j3 / 255F, (float)k3 / 255F);
            GL11.glEndList();
        }

    }

    public void drawStringWithShadow(String s, int i, int j, int k)
    {
        renderString(s, i + 1, j + 1, k, true);
        drawString(s, i, j, k);
    }

    public void drawString(String s, int i, int j, int k)
    {
        renderString(s, i, j, k, false);
    }

    public void renderString(String s, int i, int j, int k, boolean flag)
    {
        if(s == null)
        {
            return;
        }
        if(flag)
        {
            int l = k & 0xff000000;
            k = (k & 0xfcfcfc) >> 2;
            k += l;
        }
        GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, fontTextureName);
        float f = (float)(k >> 16 & 0xff) / 255F;
        float f1 = (float)(k >> 8 & 0xff) / 255F;
        float f2 = (float)(k & 0xff) / 255F;
        float f3 = (float)(k >> 24 & 0xff) / 255F;
        if(f3 == 0.0F)
        {
            f3 = 1.0F;
        }
        GL11.glColor4f(f, f1, f2, f3);
        buffer.clear();
        GL11.glPushMatrix();
        GL11.glTranslatef(i, j, 0.0F);
        for(int i1 = 0; i1 < s.length(); i1++)
        {
            for(; s.charAt(i1) == \'\\247\' && s.length() > i1 + 1; i1 += 2)
            {
                int j1 = "0123456789abcdef".indexOf(s.toLowerCase().charAt(i1 + 1));
                if(j1 < 0 || j1 > 15)
                {
                    j1 = 15;
                }
                buffer.put(fontDisplayLists + 256 + j1 + (flag ? 16 : 0));
                if(buffer.remaining() == 0)
                {
                    buffer.flip();
                    GL11.glCallLists(buffer);
                    buffer.clear();
                }
            }

            int k1 = FontAllowedCharacters.field_20157_a.indexOf(s.charAt(i1));
            if(k1 >= 0)
            {
                buffer.put(fontDisplayLists + k1 + 32);
            }
            if(buffer.remaining() == 0)
            {
                buffer.flip();
                GL11.glCallLists(buffer);
                buffer.clear();
            }
        }

        buffer.flip();
        GL11.glCallLists(buffer);
        GL11.glPopMatrix();
    }

    public int getStringWidth(String s)
    {
        if(s == null)
        {
            return 0;
        }
        int i = 0;
        for(int j = 0; j < s.length(); j++)
        {
            if(s.charAt(j) == \'\\247\')
            {
                j++;
                continue;
            }
            int k = FontAllowedCharacters.field_20157_a.indexOf(s.charAt(j));
            if(k >= 0)
            {
                i += charWidth[k + 32];
            }
        }

        return i;
    }

    private int charWidth[];
    public int fontTextureName;
    private int fontDisplayLists;
    private IntBuffer buffer;
}









폰트렌더러부분의 소스임

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이번주 설문은 탈모 걱정 없어 보이는 머리숱 금수저 스타는? 운영자 25/07/14 - -
AD 휴대폰 액세서리 SALE 운영자 25/07/15 - -
350481 조선시대에 보면 시나 문장같은거로도 승부하고 그러잖아 [4] d(168.126) 13.03.19 72 0
350479 핸드폰 진동으로 촉감을 구현할수있을까? [2] ㅇㅇ(125.134) 13.03.19 55 0
350478 피자는 축복입니다. [1] 얼룩돼지갤로그로 이동합니다. 13.03.19 42 0
350476 실력은 어케 측정하나효 ? [12] ☎2.52™갤로그로 이동합니다. 13.03.19 162 0
350475 고졸이라고 글썻는대 마땅한 답변이 없내. [4] 1234(122.128) 13.03.19 91 0
350474 어그로주의보 중딩1 컨셉종자 출현 [1] pas(110.70) 13.03.19 60 0
350473 난 너무 게을러. [9] ☎2.52™갤로그로 이동합니다. 13.03.19 109 0
350472 누나 있는사람? [10] DART(116.41) 13.03.19 138 0
350470 나이처먹고 뭐하는짓인지 모르겠지만 희망이없어서 여기 글싸질름. [7] 1234(122.128) 13.03.19 186 0
350469 ㅇㅇ형 공부 하라는 소리가 프로그래밍? [2] 징기스칸4갤로그로 이동합니다. 13.03.19 81 0
350468 아 맞다 오늘 버카주움요 백이(223.62) 13.03.19 27 0
350467 폰으로 코딩하는데 [2] 백이(223.62) 13.03.19 77 0
350465 방송태 컴퓨터 전자과 입학생인대 답이없다. (122.128) 13.03.19 46 0
350464 웹사이트 구축? [6] 학생..(128.151) 13.03.19 109 0
350463 나에게 소원이 뭐냐고 물으면 [2] 징기스칸4갤로그로 이동합니다. 13.03.19 66 0
350461 정녕 난 구원받을 수 없을 것인가 [4] 징기스칸4갤로그로 이동합니다. 13.03.19 86 0
350460 [17] 루비•‿•갤로그로 이동합니다. 13.03.19 209 0
350459 옛날 울티마 6 할때 로드브리티쉬 얼려서 박스 안에 넣어 다니기는 했었음 ☎2.52™갤로그로 이동합니다. 13.03.19 56 0
350458 징기스칸 이주 제한 풀려면 다시 컴파일 해야 되는 사항 아니노 ? [6] ☎2.52™갤로그로 이동합니다. 13.03.19 129 0
350456 빛 한 줄기를 보고 싶다... [4] 징기스칸4갤로그로 이동합니다. 13.03.19 89 0
350454 리눅스 잘아는 사람만좀 봐주라. [2] 미니앵두갤로그로 이동합니다. 13.03.19 78 0
350453 안드로이드로 카톡같은걸 만들어보고싶은데 [13] dd(210.94) 13.03.19 116 0
350451 형 이문제도좀 봐주세요 전 진짜로 멍충한듯.. [2] 나는바보다(112.145) 13.03.19 92 0
350450 이거 풀어바 [31] 루비•‿•갤로그로 이동합니다. 13.03.19 311 0
350447 간만에 오넹. 배고프다. [4] ☎2.52™갤로그로 이동합니다. 13.03.19 62 0
350446 형들 간단한 이산수학좀 풀어주세요ㅠ [7] 나는바보다(112.145) 13.03.19 94 0
350443 님들 c, c++에서 연산자좀 알려주셈 [5] 야간편돌이(175.116) 13.03.19 77 0
350442 나 없을때 피자대첩이라니 얼룩돼지갤로그로 이동합니다. 13.03.19 31 0
350440 역시 프갤 수준 ㅇㄴㅁㅇㄴㅁ(59.11) 13.03.19 68 0
350438 프갤 피자대첩 재구성 [5] ㅇㅇㅇ(1.234) 13.03.19 2207 21
350437 ㅇㅇ형 감사했습니다 [3] 징기스칸4갤로그로 이동합니다. 13.03.19 145 0
350436 push codesafer; ret; [1] 와진짜정전갤(218.51) 13.03.19 76 0
350433 좋은아침요 백이(223.62) 13.03.19 34 0
350431 이거해바 [10] 루비•‿•갤로그로 이동합니다. 13.03.19 206 0
350430 이거도 해바 [15] 루비•‿•갤로그로 이동합니다. 13.03.19 204 0
350429 [7] 루비•‿•갤로그로 이동합니다. 13.03.19 116 0
350427 수많은 한국, 일본, 외국인들이 80도시 한계로 울부짓고 있더군 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ [2] (1.214) 13.03.19 124 0
350426 프로그래머에게 논리학이란?? [3] 야간편돌이(175.196) 13.03.19 240 0
350425 밑에글쓴놈 스샷 [4] 늅늅이(58.234) 13.03.19 107 0
350424 횽들 나 안드로이드프로그래밍 이동영상보면서 따라하는데 [2] 늅늅이(58.234) 13.03.19 86 0
350423 윈도우8의 부팅 과정은 전통적인 부팅 과정과 최대 절전 모드의 장점만 [4] 분당살람갤로그로 이동합니다. 13.03.19 988 0
350422 가게부 어플 만들려고 하는데 [1] 무늬만컴공(211.197) 13.03.19 75 0
350420 객체지향의 특징이 [2] 야간편돌이(175.196) 13.03.19 82 0
350419 제 생각만하고 질문해서 그런것같아요 전문대(175.115) 13.03.19 33 0
350418 게임기 에뮬레이터는 대체어떻게만드냐 [9] 개발개발(110.47) 13.03.19 112 0
350417 객체지향이 도대체 어떤느낌인가여? [11] 야간편돌이(175.196) 13.03.19 113 0
350415 c님은 웹프로그래머임? [1] ㅅ3ㅅ(175.215) 13.03.19 66 0
350414 님들 근데 vc++은 객체지향에 대한 이해가 있어야 배울만한가여 [10] 야간편돌이(175.196) 13.03.19 84 0
350412 현재 닉 전문대 어그로중 [4] c(175.208) 13.03.19 67 0
350411 노트북이 무슨 비쥬얼만 실행시키면 각종 dll오류뜨는데 개좆같네 ㅡㅡ [2] ㅁㄴㅇ(121.165) 13.03.19 64 0
뉴스 백종원 맞아? 얼굴이 ‘반쪽’…일본서 수척해진 근황 ‘포착’ 디시트렌드 07.14
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2