Search in sources :

Example 31 with com.jme3.opencl

use of com.jme3.opencl in project jmonkeyengine by jMonkeyEngine.

the class Spatial method removeControl.

/**
     * Removes the first control that is an instance of the given class.
     *
     * @see Spatial#addControl(com.jme3.scene.control.Control)
     */
public void removeControl(Class<? extends Control> controlType) {
    boolean before = requiresUpdates();
    for (int i = 0; i < controls.size(); i++) {
        if (controlType.isAssignableFrom(controls.get(i).getClass())) {
            Control control = controls.remove(i);
            control.setSpatial(null);
            // added to match the javadoc  -pspeed
            break;
        }
    }
    boolean after = requiresUpdates();
    // can rebuild its update list.
    if (parent != null && before != after) {
        parent.invalidateUpdateList();
    }
}
Also used : Control(com.jme3.scene.control.Control)

Example 32 with com.jme3.opencl

use of com.jme3.opencl in project jmonkeyengine by jMonkeyEngine.

the class RenderManager method renderGeometry.

/**
     * Renders the given geometry.
     * <p>
     * First the proper world matrix is set, if 
     * the geometry's {@link Geometry#setIgnoreTransform(boolean) ignore transform}
     * feature is enabled, the identity world matrix is used, otherwise, the 
     * geometry's {@link Geometry#getWorldMatrix() world transform matrix} is used. 
     * <p>
     * Once the world matrix is applied, the proper material is chosen for rendering.
     * If a {@link #setForcedMaterial(com.jme3.material.Material) forced material} is
     * set on this RenderManager, then it is used for rendering the geometry,
     * otherwise, the {@link Geometry#getMaterial() geometry's material} is used.
     * <p>
     * If a {@link #setForcedTechnique(java.lang.String) forced technique} is
     * set on this RenderManager, then it is selected automatically
     * on the geometry's material and is used for rendering. Otherwise, one
     * of the {@link MaterialDef#getDefaultTechniques() default techniques} is
     * used.
     * <p>
     * If a {@link #setForcedRenderState(com.jme3.material.RenderState) forced
     * render state} is set on this RenderManager, then it is used
     * for rendering the material, and the material's own render state is ignored.
     * Otherwise, the material's render state is used as intended.
     * 
     * @param geom The geometry to render
       * 
     * @see Technique
     * @see RenderState
     * @see Material#selectTechnique(java.lang.String, com.jme3.renderer.RenderManager) 
     * @see Material#render(com.jme3.scene.Geometry, com.jme3.renderer.RenderManager) 
     */
public void renderGeometry(Geometry geom) {
    if (geom.isIgnoreTransform()) {
        setWorldMatrix(Matrix4f.IDENTITY);
    } else {
        setWorldMatrix(geom.getWorldMatrix());
    }
    // Perform light filtering if we have a light filter.
    LightList lightList = geom.getWorldLightList();
    if (lightFilter != null) {
        filteredLightList.clear();
        lightFilter.filterLights(geom, filteredLightList);
        lightList = filteredLightList;
    }
    Material material = geom.getMaterial();
    //else the geom is not rendered
    if (forcedTechnique != null) {
        MaterialDef matDef = material.getMaterialDef();
        if (matDef.getTechniqueDefs(forcedTechnique) != null) {
            Technique activeTechnique = material.getActiveTechnique();
            String previousTechniqueName = activeTechnique != null ? activeTechnique.getDef().getName() : TechniqueDef.DEFAULT_TECHNIQUE_NAME;
            geom.getMaterial().selectTechnique(forcedTechnique, this);
            //saving forcedRenderState for future calls
            RenderState tmpRs = forcedRenderState;
            if (geom.getMaterial().getActiveTechnique().getDef().getForcedRenderState() != null) {
                //forcing forced technique renderState
                forcedRenderState = geom.getMaterial().getActiveTechnique().getDef().getForcedRenderState();
            }
            // use geometry's material
            material.render(geom, lightList, this);
            material.selectTechnique(previousTechniqueName, this);
            //restoring forcedRenderState
            forcedRenderState = tmpRs;
        //Reverted this part from revision 6197
        //If forcedTechnique does not exists, and forcedMaterial is not set, the geom MUST NOT be rendered
        } else if (forcedMaterial != null) {
            // use forced material
            forcedMaterial.render(geom, lightList, this);
        }
    } else if (forcedMaterial != null) {
        // use forced material
        forcedMaterial.render(geom, lightList, this);
    } else {
        material.render(geom, lightList, this);
    }
}
Also used : RenderState(com.jme3.material.RenderState) LightList(com.jme3.light.LightList) Material(com.jme3.material.Material) Technique(com.jme3.material.Technique) MaterialDef(com.jme3.material.MaterialDef)

Example 33 with com.jme3.opencl

use of com.jme3.opencl in project jmonkeyengine by jMonkeyEngine.

the class AWTLoader method load.

public Image load(BufferedImage img, boolean flipY) {
    int width = img.getWidth();
    int height = img.getHeight();
    switch(img.getType()) {
        case // most common in PNG images w/ alpha
        BufferedImage.TYPE_4BYTE_ABGR:
            byte[] dataBuf1 = (byte[]) extractImageData(img);
            if (flipY)
                flipImage(dataBuf1, width, height, 32);
            ByteBuffer data1 = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4);
            data1.put(dataBuf1);
            return new Image(Format.ABGR8, width, height, data1, null, com.jme3.texture.image.ColorSpace.sRGB);
        case // most common in JPEG images
        BufferedImage.TYPE_3BYTE_BGR:
            byte[] dataBuf2 = (byte[]) extractImageData(img);
            if (flipY)
                flipImage(dataBuf2, width, height, 24);
            ByteBuffer data2 = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 3);
            data2.put(dataBuf2);
            return new Image(Format.BGR8, width, height, data2, null, com.jme3.texture.image.ColorSpace.sRGB);
        case // grayscale fonts
        BufferedImage.TYPE_BYTE_GRAY:
            byte[] dataBuf3 = (byte[]) extractImageData(img);
            if (flipY)
                flipImage(dataBuf3, width, height, 8);
            ByteBuffer data3 = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight());
            data3.put(dataBuf3);
            return new Image(Format.Luminance8, width, height, data3, null, com.jme3.texture.image.ColorSpace.sRGB);
        default:
            break;
    }
    if (img.getTransparency() == Transparency.OPAQUE) {
        ByteBuffer data = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 3);
        // no alpha
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                int ny = y;
                if (flipY) {
                    ny = height - y - 1;
                }
                int rgb = img.getRGB(x, ny);
                byte r = (byte) ((rgb & 0x00FF0000) >> 16);
                byte g = (byte) ((rgb & 0x0000FF00) >> 8);
                byte b = (byte) ((rgb & 0x000000FF));
                data.put(r).put(g).put(b);
            }
        }
        data.flip();
        return new Image(Format.RGB8, width, height, data, null, com.jme3.texture.image.ColorSpace.sRGB);
    } else {
        ByteBuffer data = BufferUtils.createByteBuffer(img.getWidth() * img.getHeight() * 4);
        // alpha
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                int ny = y;
                if (flipY) {
                    ny = height - y - 1;
                }
                int rgb = img.getRGB(x, ny);
                byte a = (byte) ((rgb & 0xFF000000) >> 24);
                byte r = (byte) ((rgb & 0x00FF0000) >> 16);
                byte g = (byte) ((rgb & 0x0000FF00) >> 8);
                byte b = (byte) ((rgb & 0x000000FF));
                data.put(r).put(g).put(b).put(a);
            }
        }
        data.flip();
        return new Image(Format.RGBA8, width, height, data, null, com.jme3.texture.image.ColorSpace.sRGB);
    }
}
Also used : Image(com.jme3.texture.Image) ByteBuffer(java.nio.ByteBuffer)

Example 34 with com.jme3.opencl

use of com.jme3.opencl in project jmonkeyengine by jMonkeyEngine.

the class CubeField method simpleInitApp.

/**
     * Initializes game 
     */
@Override
public void simpleInitApp() {
    Logger.getLogger("com.jme3").setLevel(Level.WARNING);
    flyCam.setEnabled(false);
    setDisplayStatView(false);
    Keys();
    defaultFont = assetManager.loadFont("Interface/Fonts/Default.fnt");
    pressStart = new BitmapText(defaultFont, false);
    fpsScoreText = new BitmapText(defaultFont, false);
    loadText(fpsScoreText, "Current Score: 0", defaultFont, 0, 2, 0);
    loadText(pressStart, "PRESS ENTER", defaultFont, 0, 5, 0);
    player = createPlayer();
    rootNode.attachChild(player);
    cubeField = new ArrayList<Geometry>();
    obstacleColors = new ArrayList<ColorRGBA>();
    gameReset();
}
Also used : Geometry(com.jme3.scene.Geometry) BitmapText(com.jme3.font.BitmapText) ColorRGBA(com.jme3.math.ColorRGBA)

Example 35 with com.jme3.opencl

use of com.jme3.opencl in project jmonkeyengine by jMonkeyEngine.

the class TestContextSwitching method simpleInitApp.

@Override
public void simpleInitApp() {
    clContext = null;
    NiftyJmeDisplay niftyDisplay = NiftyJmeDisplay.newNiftyJmeDisplay(assetManager, inputManager, audioRenderer, guiViewPort);
    nifty = niftyDisplay.getNifty();
    nifty.fromXml("jme3test/opencl/ContextSwitchingScreen.xml", "Screen", this);
    guiViewPort.addProcessor(niftyDisplay);
    inputManager.setCursorVisible(true);
    flyCam.setEnabled(false);
}
Also used : NiftyJmeDisplay(com.jme3.niftygui.NiftyJmeDisplay)

Aggregations

ByteBuffer (java.nio.ByteBuffer)8 Vector3f (com.jme3.math.Vector3f)7 ColorRGBA (com.jme3.math.ColorRGBA)6 Material (com.jme3.material.Material)5 com.jme3.opencl (com.jme3.opencl)5 Geometry (com.jme3.scene.Geometry)5 BitmapText (com.jme3.font.BitmapText)4 RendererException (com.jme3.renderer.RendererException)4 Texture (com.jme3.texture.Texture)4 ArrayList (java.util.ArrayList)4 BitmapFont (com.jme3.font.BitmapFont)3 Matrix4f (com.jme3.math.Matrix4f)3 DefaultPlatformChooser (com.jme3.opencl.DefaultPlatformChooser)3 Device (com.jme3.opencl.Device)3 PlatformChooser (com.jme3.opencl.PlatformChooser)3 AppSettings (com.jme3.system.AppSettings)3 Image (com.jme3.texture.Image)3 TextureCubeMap (com.jme3.texture.TextureCubeMap)3 CubeMapWrapper (com.jme3.environment.util.CubeMapWrapper)2 AmbientLight (com.jme3.light.AmbientLight)2