math.ceiling java,Java MathHelper.ceiling_double_int方法代码示例

import net.minecraft.util.MathHelper; //导入方法依赖的package包/类

/**

* Sets up the character data and textures.

*

* @param characterData The array of character data that should be filled.

* @param type The font type. (Regular, Bold, and Italics)

*/

private CharacterData[] setup(CharacterData[] characterData, int type) {

// Quickly generates the colors.

generateColors();

// Changes the type of the font to the given type.

Font font = this.font.deriveFont(type);

// An image just to get font data.

BufferedImage utilityImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);

// The graphics of the utility image.

Graphics2D utilityGraphics = (Graphics2D) utilityImage.getGraphics();

// Sets the font of the utility image to the font.

utilityGraphics.setFont(font);

// The font metrics of the utility image.

FontMetrics fontMetrics = utilityGraphics.getFontMetrics();

// Iterates through all the characters in the character set of the font renderer.

for (int index = 0; index < characterData.length; index++) {

// The character at the current index.

char character = (char) index;

// The width and height of the character according to the font.

Rectangle2D characterBounds = fontMetrics.getStringBounds(character + "", utilityGraphics);

// The width of the character texture.

float width = (float) characterBounds.getWidth() + (2 * MARGIN);

// The height of the character texture.

float height = (float) characterBounds.getHeight();

// The image that the character will be rendered to.

BufferedImage characterImage = new BufferedImage(MathHelper.ceiling_double_int(width), MathHelper.ceiling_double_int(height), BufferedImage.TYPE_INT_ARGB);

// The graphics of the character image.

Graphics2D graphics = (Graphics2D) characterImage.getGraphics();

// Sets the font to the input font/

graphics.setFont(font);

// Sets the color to white with no alpha.

graphics.setColor(new Color(255, 255, 255, 0));

// Fills the entire image with the color above, makes it transparent.

graphics.fillRect(0, 0, characterImage.getWidth(), characterImage.getHeight());

// Sets the color to white to draw the character.

graphics.setColor(Color.WHITE);

// Enables anti-aliasing so the font doesn't have aliasing.

graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, this.fractionalMetrics ? RenderingHints.VALUE_FRACTIONALMETRICS_ON : RenderingHints.VALUE_FRACTIONALMETRICS_OFF);

// Draws the character.

graphics.drawString(character + "", MARGIN, fontMetrics.getAscent());

// Generates a new texture id.

int textureId = GlStateManager.generateTexture();

// Allocates the texture in opengl.

createTexture(textureId, characterImage);

// Initiates the character data and stores it in the data array.

characterData[index] = new CharacterData(character, characterImage.getWidth(), characterImage.getHeight(), textureId);

}

// Returns the filled character data array.

return characterData;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值