Java 类com.badlogic.gdx.tools.hiero.unicodefont.effects.ColorEffect 实例源码

项目:featurea    文件:FontCreator.java   
public void createFont(final File fntFile, final String name, final int size, final boolean isBold, final boolean isItalic) {
    final JFrame frame = new JFrame() {{
        pack();
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // IMPORTANT
    }};
    frame.getContentPane().add(new MyLwjglCanvas(new ApplicationAdapter() {
        private final UnicodeFont unicodeFont = new UnicodeFont(Font.decode(name), size, isBold, isItalic);

        @Override
        public void create() {
            unicodeFont.setMono(false);
            unicodeFont.setPaddingTop(PADDING);
            unicodeFont.setPaddingRight(PADDING);
            unicodeFont.setPaddingBottom(PADDING);
            unicodeFont.setPaddingLeft(PADDING);
            unicodeFont.setPaddingAdvanceX(-2 * PADDING);
            unicodeFont.setPaddingAdvanceY(-2 * PADDING);
            unicodeFont.setGlyphPageWidth(1024);
            unicodeFont.setGlyphPageHeight(512);
            unicodeFont.setRenderType(UnicodeFont.RenderType.Java);
            List effects = unicodeFont.getEffects();
            effects.add(new ColorEffect(Color.white));
            unicodeFont.addGlyphs(CHARACTERS);
            try {
                FileUtil.createNewFile(fntFile);
                new BMFontUtil(unicodeFont).save(fntFile);
            } catch (Throwable ex) {
                ex.printStackTrace();
            }
            if ("studio".equals(System.getProperty("featurea.launcher"))) {
                frame.dispose();
            } else {
                frame.setVisible(false);
            }
        }
    }).getCanvas());
}
项目:libgdxcn    文件:GlyphPage.java   
/** Loads a single glyph to the backing texture, if it fits. */
private void renderGlyph (Glyph glyph, int width, int height) {
    // Draw the glyph to the scratch image using Java2D.
    scratchGraphics.setComposite(AlphaComposite.Clear);
    scratchGraphics.fillRect(0, 0, MAX_GLYPH_SIZE, MAX_GLYPH_SIZE);
    scratchGraphics.setComposite(AlphaComposite.SrcOver);
    if (unicodeFont.getNativeRendering()) {
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();) {
            Effect effect = (Effect)iter.next();
            if (effect instanceof ColorEffect) scratchGraphics.setColor(((ColorEffect)effect).getColor());
        }
        scratchGraphics.setColor(java.awt.Color.white);
        scratchGraphics.setFont(unicodeFont.getFont());
        scratchGraphics.drawString("" + (char)glyph.getCodePoint(), 0, unicodeFont.getAscent());
    } else {
        scratchGraphics.setColor(java.awt.Color.white);
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();)
            ((Effect)iter.next()).draw(scratchImage, scratchGraphics, unicodeFont, glyph);
        glyph.setShape(null); // The shape will never be needed again.
    }

    width = Math.min(width, texture.getWidth());
    height = Math.min(height, texture.getHeight());

    WritableRaster raster = scratchImage.getRaster();
    int[] row = new int[width];
    for (int y = 0; y < height; y++) {
        raster.getDataElements(0, y, width, 1, row);
        scratchIntBuffer.put(row);
    }
    GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, pageX, pageY, width, height, GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE,
        scratchByteBuffer);
    scratchIntBuffer.clear();

    float u = pageX / (float)texture.getWidth();
    float v = pageY / (float)texture.getHeight();
    float u2 = (pageX + width) / (float)texture.getWidth();
    float v2 = (pageY + height) / (float)texture.getHeight();
    glyph.setTexture(texture, u, v, u2, v2);
}
项目:libgdxcn    文件:Hiero.java   
public Hiero(String [] args) {
    super("Hiero v3.0 - Bitmap Font Tool");
    Splash splash = new Splash(this, "/splash.jpg", 2000);
    initialize();
    splash.close();

    gamePanel.add(new LwjglCanvas(new Renderer()).getCanvas());

    prefs = Preferences.userNodeForPackage(Hiero.class);
    java.awt.Color backgroundColor = EffectUtil.fromString(prefs.get("background", "000000"));
    backgroundColorLabel.setIcon(getColorIcon(backgroundColor));
    renderingBackgroundColor = new Color(backgroundColor.getRed() / 255f, backgroundColor.getGreen() / 255f,
        backgroundColor.getBlue() / 255f, 1);
    fontList.setSelectedValue(prefs.get("system.font", "Arial"), true);
    fontFileText.setText(prefs.get("font.file", ""));

    java.awt.Color foregroundColor = EffectUtil.fromString(prefs.get("foreground", "ffffff"));
    colorEffect = new ColorEffect();
    colorEffect.setColor(foregroundColor);
    effectsListModel.addElement(colorEffect);
    effectsListModel.addElement(new GradientEffect());
    effectsListModel.addElement(new OutlineEffect());
    effectsListModel.addElement(new OutlineWobbleEffect());
    effectsListModel.addElement(new OutlineZigzagEffect());
    effectsListModel.addElement(new ShadowEffect());
    effectsListModel.addElement(new DistanceFieldEffect());
    new EffectPanel(colorEffect);

    parseArgs(args);

    addWindowListener(new WindowAdapter() {
        public void windowClosed (WindowEvent event) {
            System.exit(0);
            // Gdx.app.quit();
        }
    });

    updateFontSelector();
    setVisible(true);
}
项目:GdxStudio    文件:GlyphPage.java   
/** Loads a single glyph to the backing texture, if it fits. */
private void renderGlyph (Glyph glyph, int width, int height) {
    // Draw the glyph to the scratch image using Java2D.
    scratchGraphics.setComposite(AlphaComposite.Clear);
    scratchGraphics.fillRect(0, 0, MAX_GLYPH_SIZE, MAX_GLYPH_SIZE);
    scratchGraphics.setComposite(AlphaComposite.SrcOver);
    if (unicodeFont.getNativeRendering()) {
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();) {
            Effect effect = (Effect)iter.next();
            if (effect instanceof ColorEffect) scratchGraphics.setColor(((ColorEffect)effect).getColor());
        }
        scratchGraphics.setColor(java.awt.Color.white);
        scratchGraphics.setFont(unicodeFont.getFont());
        scratchGraphics.drawString("" + (char)glyph.getCodePoint(), 0, unicodeFont.getAscent());
    } else {
        scratchGraphics.setColor(java.awt.Color.white);
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();)
            ((Effect)iter.next()).draw(scratchImage, scratchGraphics, unicodeFont, glyph);
        glyph.setShape(null); // The shape will never be needed again.
    }

    width = Math.min(width, texture.getWidth());
    height = Math.min(height, texture.getHeight());

    WritableRaster raster = scratchImage.getRaster();
    int[] row = new int[width];
    for (int y = 0; y < height; y++) {
        raster.getDataElements(0, y, width, 1, row);
        scratchIntBuffer.put(row);
    }
    GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, pageX, pageY, width, height, GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE,
        scratchByteBuffer);
    scratchIntBuffer.clear();

    float u = pageX / (float)texture.getWidth();
    float v = pageY / (float)texture.getHeight();
    float u2 = (pageX + width) / (float)texture.getWidth();
    float v2 = (pageY + height) / (float)texture.getHeight();
    glyph.setTexture(texture, u, v, u2, v2);
}
项目:GdxStudio    文件:HieroPanel.java   
public HieroPanel() {
    super(new BorderLayout());
    initialize();
    //fontRenderer = new FontRenderer();
    //canvas = new  LwjglAWTCanvas(fontRenderer, false);
    //gamePanel.add(canvas.getCanvas());
    prefs = Preferences.userNodeForPackage(HieroPanel.class);
    java.awt.Color backgroundColor = EffectUtil.fromString(prefs.get("background", "000000"));
    backgroundColorLabel.setIcon(getColorIcon(backgroundColor));
    renderingBackgroundColor = new Color(backgroundColor.getRed() / 255f, backgroundColor.getGreen() / 255f,
        backgroundColor.getBlue() / 255f, 1);
    fontList.setSelectedValue(prefs.get("system.font", "Arial"), true);
    fontFileText.setText(prefs.get("font.file", ""));

    java.awt.Color foregroundColor = EffectUtil.fromString(prefs.get("foreground", "ffffff"));
    colorEffect = new ColorEffect();
    colorEffect.setColor(foregroundColor);
    effectsListModel.addElement(colorEffect);
    effectsListModel.addElement(new GradientEffect());
    effectsListModel.addElement(new OutlineEffect());
    effectsListModel.addElement(new OutlineWobbleEffect());
    effectsListModel.addElement(new OutlineZigzagEffect());
    effectsListModel.addElement(new ShadowEffect());
    effectsListModel.addElement(new DistanceFieldEffect());
    new EffectPanel(colorEffect);
    setVisible(true);
}
项目:GdxStudio    文件:Hiero.java   
public Hiero () {
    super("Hiero v3.0 - Bitmap Font Tool");
    Splash splash = new Splash(this, "/splash.jpg", 2000);
    initialize();
    splash.close();

    gamePanel.add(new LwjglCanvas(new Renderer(), false).getCanvas());

    prefs = Preferences.userNodeForPackage(Hiero.class);
    java.awt.Color backgroundColor = EffectUtil.fromString(prefs.get("background", "000000"));
    backgroundColorLabel.setIcon(getColorIcon(backgroundColor));
    renderingBackgroundColor = new Color(backgroundColor.getRed() / 255f, backgroundColor.getGreen() / 255f,
        backgroundColor.getBlue() / 255f, 1);
    fontList.setSelectedValue(prefs.get("system.font", "Arial"), true);
    fontFileText.setText(prefs.get("font.file", ""));

    java.awt.Color foregroundColor = EffectUtil.fromString(prefs.get("foreground", "ffffff"));
    colorEffect = new ColorEffect();
    colorEffect.setColor(foregroundColor);
    effectsListModel.addElement(colorEffect);
    effectsListModel.addElement(new GradientEffect());
    effectsListModel.addElement(new OutlineEffect());
    effectsListModel.addElement(new OutlineWobbleEffect());
    effectsListModel.addElement(new OutlineZigzagEffect());
    effectsListModel.addElement(new ShadowEffect());
    effectsListModel.addElement(new DistanceFieldEffect());
    new EffectPanel(colorEffect);
    setVisible(true);
}
项目:touhou-java    文件:GlyphPage.java   
/** Loads a single glyph to the backing texture, if it fits. */
private void renderGlyph (Glyph glyph, int width, int height) {
    // Draw the glyph to the scratch image using Java2D.
    scratchGraphics.setComposite(AlphaComposite.Clear);
    scratchGraphics.fillRect(0, 0, MAX_GLYPH_SIZE, MAX_GLYPH_SIZE);
    scratchGraphics.setComposite(AlphaComposite.SrcOver);
    if (unicodeFont.getNativeRendering()) {
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();) {
            Effect effect = (Effect)iter.next();
            if (effect instanceof ColorEffect) scratchGraphics.setColor(((ColorEffect)effect).getColor());
        }
        scratchGraphics.setColor(java.awt.Color.white);
        scratchGraphics.setFont(unicodeFont.getFont());
        scratchGraphics.drawString("" + (char)glyph.getCodePoint(), 0, unicodeFont.getAscent());
    } else {
        scratchGraphics.setColor(java.awt.Color.white);
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();)
            ((Effect)iter.next()).draw(scratchImage, scratchGraphics, unicodeFont, glyph);
        glyph.setShape(null); // The shape will never be needed again.
    }

    width = Math.min(width, texture.getWidth());
    height = Math.min(height, texture.getHeight());

    WritableRaster raster = scratchImage.getRaster();
    int[] row = new int[width];
    for (int y = 0; y < height; y++) {
        raster.getDataElements(0, y, width, 1, row);
        scratchIntBuffer.put(row);
    }
    GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, pageX, pageY, width, height, GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE,
        scratchByteBuffer);
    scratchIntBuffer.clear();

    float u = pageX / (float)texture.getWidth();
    float v = pageY / (float)texture.getHeight();
    float u2 = (pageX + width) / (float)texture.getWidth();
    float v2 = (pageY + height) / (float)texture.getHeight();
    glyph.setTexture(texture, u, v, u2, v2);
}
项目:touhou-java    文件:Hiero.java   
public Hiero () {
    super("Hiero v3.0 - Bitmap Font Tool");
    Splash splash = new Splash(this, "/splash.jpg", 2000);
    initialize();
    splash.close();

    gamePanel.add(new LwjglCanvas(new Renderer(), false).getCanvas());

    prefs = Preferences.userNodeForPackage(Hiero.class);
    java.awt.Color backgroundColor = EffectUtil.fromString(prefs.get("background", "000000"));
    backgroundColorLabel.setIcon(getColorIcon(backgroundColor));
    renderingBackgroundColor = new Color(backgroundColor.getRed() / 255f, backgroundColor.getGreen() / 255f,
        backgroundColor.getBlue() / 255f, 1);
    fontList.setSelectedValue(prefs.get("system.font", "Arial"), true);
    fontFileText.setText(prefs.get("font.file", ""));

    java.awt.Color foregroundColor = EffectUtil.fromString(prefs.get("foreground", "ffffff"));
    colorEffect = new ColorEffect();
    colorEffect.setColor(foregroundColor);
    effectsListModel.addElement(colorEffect);
    effectsListModel.addElement(new GradientEffect());
    effectsListModel.addElement(new OutlineEffect());
    effectsListModel.addElement(new OutlineWobbleEffect());
    effectsListModel.addElement(new OutlineZigzagEffect());
    effectsListModel.addElement(new ShadowEffect());
    effectsListModel.addElement(new DistanceFieldEffect());
    new EffectPanel(colorEffect);

    addWindowListener(new WindowAdapter() {
        public void windowClosed (WindowEvent event) {
            System.exit(0);
            // Gdx.app.quit();
        }
    });

    setVisible(true);
}
项目:GdxStudio    文件:UnicodeFontTest.java   
@Override
public void create () {
    unicodeFont = new UnicodeFont("c:/windows/fonts/arial.ttf", 48, false, false);
    unicodeFont.getEffects().add(new ColorEffect(java.awt.Color.white));
}
项目:gdx-skineditor    文件:GlyphPage.java   
/** Loads a single glyph to the backing texture, if it fits. */
private void renderGlyph (Glyph glyph, int width, int height) {

    // Draw the glyph to the scratch image using Java2D.
    scratchGraphics.setComposite(AlphaComposite.Clear);
    scratchGraphics.fillRect(0, 0, MAX_GLYPH_SIZE, MAX_GLYPH_SIZE);
    scratchGraphics.setComposite(AlphaComposite.SrcOver);
    if (unicodeFont.getNativeRendering()) {
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();) {
            Effect effect = (Effect)iter.next();
            if (effect instanceof ColorEffect) scratchGraphics.setColor(((ColorEffect)effect).getColor());
        }
        scratchGraphics.setColor(java.awt.Color.white);
        scratchGraphics.setFont(unicodeFont.getFont());
        scratchGraphics.drawString("" + (char)glyph.getCodePoint(), 0, unicodeFont.getAscent());
    } else {
        scratchGraphics.setColor(java.awt.Color.white);
        for (Iterator iter = unicodeFont.getEffects().iterator(); iter.hasNext();)
            ((Effect)iter.next()).draw(scratchImage, scratchGraphics, unicodeFont, glyph);
        glyph.setShape(null); // The shape will never be needed again.
    }

    width = Math.min(width, texture.getWidth());
    height = Math.min(height, texture.getHeight());

    WritableRaster raster = scratchImage.getRaster();
    int[] row = new int[width];
    for (int y = 0; y < height; y++) {
        raster.getDataElements(0, y, width, 1, row);
        scratchIntBuffer.put(row);
    }
    GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, pageX, pageY, width, height, GL12.GL_BGRA, GL11.GL_UNSIGNED_BYTE,
        scratchByteBuffer);
    scratchIntBuffer.clear();

    float u = pageX / (float)texture.getWidth();
    float v = pageY / (float)texture.getHeight();
    float u2 = (pageX + width) / (float)texture.getWidth();
    float v2 = (pageY + height) / (float)texture.getHeight();
    glyph.setTexture(texture, u, v, u2, v2);
}
项目:touhou-java    文件:UnicodeFontTest.java   
@Override
public void create () {
    unicodeFont = new UnicodeFont("c:/windows/fonts/arial.ttf", 48, false, false);
    unicodeFont.getEffects().add(new ColorEffect(java.awt.Color.white));
}