디시인사이드 갤러리

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

갤러리 본문 영역

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

빈지노(221.162) 2011.01.26 00:43:40
조회 671 추천 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/07/01 - -
233001 자바로 콘솔용 텍스트야구겜을 만들엇는데... [11] 야구(211.108) 11.01.31 143 0
233000 [C언어 과정]C언어,C프로그래밍 교육,C언어 과정 안내 [1] Choongang(125.129) 11.01.31 156 0
232998 야들아 비전공자가 포트폴리오만 가지고 취업가능하냐? [3] 무소유자유인갤로그로 이동합니다. 11.01.31 186 0
232997 컴공과 전망있나요....ㅠㅠ [9] zzzzzzzz(125.142) 11.01.31 812 0
232996 오빠야들 군대가면 이런거 해?? [6] iljeomobolt갤로그로 이동합니다. 11.01.31 222 0
232994 형들 백스페이스 안먹히는 건 뭔일? arx갤로그로 이동합니다. 11.01.31 1246 1
232993 winapi로 윈도우 창 밑에 상태바 하나 만들러면 어떻게 해야 되지? [2] 안숭(175.200) 11.01.31 79 0
232992 자바랑 c랑 같이배우면 머리가 뽀개질까요?ㅡㅡ [4] (112.154) 11.01.31 230 0
232991 아오 축농증 히히(211.55) 11.01.31 51 0
232990 아 씨 foot Quehenr(206.219) 11.01.31 39 0
232989 언니 오빠야들.. 덕덕 하지말구요.. 물물 하세요.. [4] iljeomobolt갤로그로 이동합니다. 11.01.31 166 0
232988 미션 임파서블 1 [5] nRESET(211.54) 11.01.31 85 0
232987 클라우드 [3] 유리한갤로그로 이동합니다. 11.01.31 329 0
232986 클라우드 ... [6] 버드맨(211.55) 11.01.31 135 0
232985 근데 클라우드컴퓨턴가 뭔가가 한 5ghz 나오면 좀 하고싶을듯 [3] ㅇㅇ(121.169) 11.01.31 107 0
232984 자바 배열 자꾸 오류나는데 오류 정정 좀 부탁드려요 ㅠㅠ [6] zz(210.125) 11.01.31 147 0
232983 오늘도 나는 과자를 물며 키보드를 두들기기위해 [1] 금고래갤로그로 이동합니다. 11.01.31 68 0
232981 시불라미형 보박 [1] Quehenr(206.219) 11.01.31 49 0
232980 캬오 며칠동안 궁금해 하던 문제... [25] 분당살람갤로그로 이동합니다. 11.01.31 190 0
232979 일하기 싫어서 브라우저를 열어봤습니다. [2] nRESET(211.54) 11.01.31 151 0
232978 소스 코드 전반에 영향을 미치는 수정이 발생할 때 [1] nRESET(211.54) 11.01.31 73 0
232977 winapi사이트 보면서 공부하다 책빌려왔다 [2] 꿀레(14.33) 11.01.31 99 0
232975 형들 동적 할당에 관해 질문 좀 할게 [20] 뉴뉴늅이(116.127) 11.01.31 154 0
232974 마늘은 봅니다. [14] 다람쥐v갤로그로 이동합니다. 11.01.31 160 0
232973 요런게 클라우드 [9] 지각맨(211.55) 11.01.31 137 0
232972 혹시 이맥스 쓰는횽 [1] 윗휴갤로그로 이동합니다. 11.01.31 80 0
232970 성님들 넷북으로도 프로그래밍 잘 돌려먹습니까? [3] 컴공(124.216) 11.01.31 205 0
232967 내 친구 일하는 곳에선... [7] 땡칠도사갤로그로 이동합니다. 11.01.31 277 0
232966 자바 책 뭐가 좋냐 이생퀴들아 [7] ㅇㅇ(211.114) 11.01.31 151 0
232964 안드로이드 simpleCursorAdapter 잘 아는사람? [4] Quehenr(206.219) 11.01.31 111 0
232962 아.. 십라 xe 개발해본 횽 있나? [17] 하우스(124.146) 11.01.31 173 0
232960 인문학에대해서.... [6] 맨틀맨(211.55) 11.01.31 148 0
232959 형들 버드맨(211.55) 11.01.31 30 0
232958 작업표시줄에 있는 아이콘하고 이름 바꿀수 없나요? [1] ㅇㅋ(113.61) 11.01.31 72 0
232957 다음 텀은 휴계 땡칠도사갤로그로 이동합니다. 11.01.31 68 0
232956 "유닉스는 기원전 1500년에 고양이가 만들었다"의 증명 [40] CsP(200.118) 11.01.31 367 0
232955 10년 후 유망직업에 개발자가 있는데 ... [10] 임베디드(115.94) 11.01.31 301 3
232953 마인크는 대세를 뛰어넘어 하드웨어의 판도도 바꿀거라고 봐. [50] 마늘(58.103) 11.01.31 375 0
232952 페이스북과 네이버 페네닭(112.216) 11.01.31 91 0
232951 ARM에 대해 잘아는 횽들 [7] dd(121.50) 11.01.31 124 0
232950 프로그래머 꿈으로 사는 꼬꼬마인데 [5] 응응이(221.155) 11.01.31 146 0
232949 함수형 프로그래밍은 장식입니다. 함수빠들은 그걸 몰라요. [2] 올리브맛감초(110.15) 11.01.31 178 0
232948 형들 신입으로 들어가는데 백지상태면 어케됨?? [3] 탱킹갤로그로 이동합니다. 11.01.31 180 0
232947 캐네디언 [3] 땡칠도사갤로그로 이동합니다. 11.01.31 99 0
232946 마인크를 보면서 요즘 3D게임품질에 대해 느낀건데 말야 [7] 마늘(58.103) 11.01.31 305 0
232945 안녕 얘드라 내가 정규식도 못하는 병신인데 [1] Mayu갤로그로 이동합니다. 11.01.31 122 0
232942 으앜 마인크래프트 안하려고했는데.. 꿀레(14.33) 11.01.31 123 0
232941 나이 서른에 개발자 연봉이 보통 어떻게 되냐? [1] 김성모(124.146) 11.01.31 317 0
232940 논리회로 좀 공부해볼라 하는데 책 뭐사면 좋음? [1] elwlwlwk갤로그로 이동합니다. 11.01.31 89 0
232939 야구게임 만들었는데 좀 봐주세요 형들 [5] 마타마타(125.176) 11.01.31 142 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2