Search in sources :

Example 11 with Color

use of org.terasology.rendering.nui.Color in project Terasology by MovingBlocks.

the class FieldFacetLayer method render.

@Override
public void render(BufferedImage img, Region region) {
    FieldFacet2D facet = region.getFacet(clazz);
    int width = img.getWidth();
    int height = img.getHeight();
    ColorModel colorModel = img.getColorModel();
    ColorBlender blender = ColorBlenders.forColorModel(ColorModels.RGBA, colorModel);
    DataBufferInt dataBuffer = (DataBufferInt) img.getRaster().getDataBuffer();
    for (int z = 0; z < height; z++) {
        for (int x = 0; x < width; x++) {
            Color col = getColor(facet, x, z);
            int src = col.rgba();
            int dst = dataBuffer.getElem(z * width + x);
            int mix = blender.add(src, dst);
            dataBuffer.setElem(z * width + x, mix);
        }
    }
}
Also used : FieldFacet2D(org.terasology.world.generation.facets.base.FieldFacet2D) ColorBlender(org.terasology.world.viewer.color.ColorBlender) ColorModel(java.awt.image.ColorModel) Color(org.terasology.rendering.nui.Color) DataBufferInt(java.awt.image.DataBufferInt)

Example 12 with Color

use of org.terasology.rendering.nui.Color in project Terasology by MovingBlocks.

the class NominalFacetLayer method render.

@Override
public void render(BufferedImage img, Region region) {
    ObjectFacet2D<E> facet = region.getFacet(facetClass);
    int width = img.getWidth();
    int height = img.getHeight();
    ColorModel colorModel = img.getColorModel();
    ColorBlender blender = ColorBlenders.forColorModel(ColorModels.RGBA, colorModel);
    DataBufferInt dataBuffer = (DataBufferInt) img.getRaster().getDataBuffer();
    for (int z = 0; z < height; z++) {
        for (int x = 0; x < width; x++) {
            Color src = getColor(facet, x, z);
            if (src != null) {
                int blend = blender.get(src.rgba());
                dataBuffer.setElem(z * width + x, blend);
            }
        }
    }
}
Also used : ColorBlender(org.terasology.world.viewer.color.ColorBlender) ColorModel(java.awt.image.ColorModel) Color(org.terasology.rendering.nui.Color) DataBufferInt(java.awt.image.DataBufferInt)

Example 13 with Color

use of org.terasology.rendering.nui.Color in project Terasology by MovingBlocks.

the class TextureAssetResolverTest method testColorTextures.

@Test
public void testColorTextures() {
    Random r = new FastRandom(123456);
    for (int i = 0; i < 10; i++) {
        int rgba = r.nextInt();
        Color red = new Color(rgba);
        ResourceUrn textureUriForColor = TextureUtil.getTextureUriForColor(red);
        String simpleString = textureUriForColor.toString();
        Optional<Texture> tex = Assets.getTexture(simpleString);
        assertTrue(tex.isPresent());
        ByteBuffer dataBuffer = tex.get().getData().getBuffers()[0];
        int firstPixel = dataBuffer.asIntBuffer().get(0);
        Assert.assertEquals(rgba, firstPixel);
    }
}
Also used : Random(org.terasology.utilities.random.Random) FastRandom(org.terasology.utilities.random.FastRandom) Color(org.terasology.rendering.nui.Color) FastRandom(org.terasology.utilities.random.FastRandom) ResourceUrn(org.terasology.assets.ResourceUrn) ByteBuffer(java.nio.ByteBuffer) Test(org.junit.Test)

Example 14 with Color

use of org.terasology.rendering.nui.Color in project Terasology by MovingBlocks.

the class TextureDataFactoryTest method testColorTransformedToTextureUri.

@Test
public void testColorTransformedToTextureUri() throws Exception {
    int red = 0x12;
    int green = 0x3;
    int blue = 0xc4;
    int alpha = 0xe;
    Color expectedColor = new Color(red, green, blue, alpha);
    int expectedRed = 18;
    int expectedGreen = 3;
    int expectedBlue = -60;
    int expectedAlpha = 14;
    testRepeatedColorInDataTexture(expectedColor, expectedRed, expectedGreen, expectedBlue, expectedAlpha);
}
Also used : Color(org.terasology.rendering.nui.Color) Test(org.junit.Test)

Example 15 with Color

use of org.terasology.rendering.nui.Color in project Terasology by MovingBlocks.

the class TextureUtilTest method testColorTransformedToTextureUri.

@Test
public void testColorTransformedToTextureUri() throws Exception {
    ResourceUrn assetUri = TextureUtil.getTextureUriForColor(Color.RED);
    assertEquals(TerasologyConstants.ENGINE_MODULE, assetUri.getModuleName());
    assertEquals(new Name("color"), assetUri.getResourceName());
    assertEquals(new Name("ff0000ff"), assetUri.getFragmentName());
    int red = 0x12;
    int green = 0x3;
    int blue = 0xc4;
    int alpha = 0xe;
    assetUri = TextureUtil.getTextureUriForColor(new Color(red, green, blue, alpha));
    assertEquals(TerasologyConstants.ENGINE_MODULE, assetUri.getModuleName());
    assertEquals(new Name("color"), assetUri.getResourceName());
    assertEquals(new Name("1203c40e"), assetUri.getFragmentName());
}
Also used : Color(org.terasology.rendering.nui.Color) ResourceUrn(org.terasology.assets.ResourceUrn) Name(org.terasology.naming.Name) Test(org.junit.Test)

Aggregations

Color (org.terasology.rendering.nui.Color)30 Test (org.junit.Test)9 ColorModel (java.awt.image.ColorModel)3 DataBufferInt (java.awt.image.DataBufferInt)3 ResourceUrn (org.terasology.assets.ResourceUrn)3 Rect2i (org.terasology.math.geom.Rect2i)3 Vector2i (org.terasology.math.geom.Vector2i)3 Font (org.terasology.rendering.assets.font.Font)3 Map (java.util.Map)2 EntityRef (org.terasology.entitySystem.entity.EntityRef)2 PersistedData (org.terasology.persistence.typeHandling.PersistedData)2 ColorBlender (org.terasology.world.viewer.color.ColorBlender)2 Maps (com.google.common.collect.Maps)1 Sets (com.google.common.collect.Sets)1 Gson (com.google.gson.Gson)1 JsonArray (com.google.gson.JsonArray)1 Graphics2D (java.awt.Graphics2D)1 IOException (java.io.IOException)1 StringReader (java.io.StringReader)1 ByteBuffer (java.nio.ByteBuffer)1