디시인사이드 갤러리

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

갤러리 본문 영역

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

빈지노(221.162) 2011.01.26 00:43:40
조회 668 추천 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
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
235604 스마트폰 웹 환경 [15] 백탈자(61.250) 11.02.22 198 0
235602 이바보횽 저 어때여? [5] 일광면(119.198) 11.02.22 173 0
235601 지금 디시어플쓰는데 이게 공식어플이네... 탱킹갤로그로 이동합니다. 11.02.22 70 0
235600 잡코리아에 보면 가끔 외쿸에서 근무할 프로게이머를 구하는데.. [9] 외쿸닭(112.216) 11.02.22 180 0
235599 자바 가상 ip 어캐 가져오냐 [3] 천회장(125.7) 11.02.22 99 0
235598 자바의 debug 모드나 , __DEBUG__ 같은 C 같은 기능이 있나요 [16] 날개달린호랭갤로그로 이동합니다. 11.02.22 155 0
235597 시스템공부하기 좋은 책없어요? [3] 마타마타(125.176) 11.02.22 91 0
235596 java servlet으로 파일을 저장할 떄 질문~ [2] 쇼키(112.136) 11.02.22 78 0
235595 프갤은 항상 나를 올바른 곳으로 인도합니다 [1] 허허벌판갤로그로 이동합니다. 11.02.22 48 0
235594 형들 고마워 [4] 세류˚갤로그로 이동합니다. 11.02.22 92 0
235593 이 기사 좀 웃기네 [1] 이모군(1.225) 11.02.22 84 0
235592 c++ 6.0 workspace 부분왜 이럼?? [15] 미니앵두갤로그로 이동합니다. 11.02.22 122 0
235591 VS 솔루션 프로젝트..궁금해요 [5] ㅋㄱ(183.96) 11.02.22 109 0
235590 혼자있고 싶습니다. 모두 나가주세요. [3] 유리한갤로그로 이동합니다. 11.02.22 160 0
235589 프갤형들 함수까지 공부햇는데 질문좀... [14] C++language갤로그로 이동합니다. 11.02.22 145 0
235588 나의 적성을 찾으려면??? [6] ㅇㅁㄻㄹ(58.77) 11.02.22 173 0
235587 이바보 인증 [13] 이바보닭(112.216) 11.02.22 224 0
235586 돈 그까이꺼 [4] 천재플머(61.77) 11.02.22 122 0
235585 JSP파일에서 include 쓸 때 이미지 깨짐 [4] Lowforce갤로그로 이동합니다. 11.02.22 641 0
235583 정말 개썎끼들이다.. [4] 우아(221.146) 11.02.22 131 0
235582 엑셀 중복문자제거 질문 [3] ㅇㅇ(175.211) 11.02.22 609 0
235581 이바보씨 맛 [2] elwlwlwk갤로그로 이동합니다. 11.02.22 99 0
235580 안드로이드로 개발해야할 의욕을 채워주는몇가지 [4] ㄷㅈ(121.88) 11.02.22 184 0
235579 명상의 시간.. [4] ㅁㅇㅁ(211.117) 11.02.22 104 0
235578 할리의본링횽은 봅니다 [2] elwlwlwk갤로그로 이동합니다. 11.02.22 117 0
235577 횽들 c socket에서 한글깨짐 [6] 윗휴갤로그로 이동합니다. 11.02.22 211 0
235576 리눅스 해외 커뮤니티!!! [4] 김자바(122.202) 11.02.22 122 0
235575 파워포인트 2007 [2] ppt (121.133) 11.02.22 276 0
235573 2D를 헤매고 있는 중생들은 이 글을 봄미다. [3] SODmaster갤로그로 이동합니다. 11.02.22 178 0
235572 Java 쓰시는 분들이 꼭 보셔야 할 글 (JVM 버그) [9] 후시기바나(220.67) 11.02.22 199 0
235571 ㅎㄷ SODmaster갤로그로 이동합니다. 11.02.22 40 0
235570 횽들... 패턴에 관한 책좀 사려고 하는데 [5] 허허벌판갤로그로 이동합니다. 11.02.22 89 0
235569 CSS3를 배울려는 형님들에게 추천 [3] ㄷㅈ(121.88) 11.02.22 117 0
235568 자신에 사이트에서 CSS조정이 가능하다면 꼭 다음 기법을 적용합시다 ㄷㅈ(121.88) 11.02.22 88 0
235567 생명의 말씀 시간입니다... [4] 아주아슬갤로그로 이동합니다. 11.02.22 148 0
235564 진짜 개컴맹이 공유기 아이피바꾸는법 질문합니다. [9] 촙뉴비(124.60) 11.02.22 629 0
235562 형들 혹시 이클립스 에뮬로 소켓통신해봣어? [5] 형들(218.233) 11.02.22 150 0
235560 c언어 파일입출력에서 아웃풋 파일이요 [7] asdf(180.67) 11.02.22 133 0
235559 장애물은 이 광고를 10개 언어로 찍어야 하는 것이다 [3] LightEach갤로그로 이동합니다. 11.02.22 230 0
235558 쓰레드에서 쓰레드 생성 되나여? [5] 천회장(125.7) 11.02.22 179 0
235557 역시 크롬은 아직 갈길이 먼것같음 [17] ㅈㄷㅈㄷ(211.208) 11.02.22 196 0
235556 플래쉬 개발하는 형들 뭐 하나만 물어보자 [9] LightEach갤로그로 이동합니다. 11.02.22 174 0
235555 횽들 물어볼게 있어 [10] 용용(123.142) 11.02.22 189 0
235554 하.다시 프로그래밍쪽으로 공부해보려고하는데 늦진 않았을까?? [3] (118.32) 11.02.22 168 0
235553 이건 어떻게 프로그래밍했는지 궁금하다 [1] ㄷㅈ(121.88) 11.02.22 139 0
235552 미사일 출력하는거 해서 궁금해서 [5] 할리의본링갤로그로 이동합니다. 11.02.22 125 0
235551 노래는 wings og destiny가 제일 좋아요 elwlwlwk갤로그로 이동합니다. 11.02.22 59 0
235550 이바보 [2] elwlwlwk갤로그로 이동합니다. 11.02.22 83 0
235549 능력자 횽들 이것좀 찾아봐주세요 ㅠ [1] 보일까말까갤로그로 이동합니다. 11.02.22 67 0
235546 po조공wer 추가]프갤형님들 질문이 있슴당 [8] 정팩갤로그로 이동합니다. 11.02.22 220 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2