List of usage examples for com.badlogic.gdx.graphics Pixmap Pixmap
public Pixmap(byte[] encodedData, int offset, int len)
From source file:org.oscim.ios.backend.IosBitmap.java
License:Open Source License
@Override public void uploadToTexture(boolean replace) { //create Pixmap from cgBitmapContext UIImage uiImage = new UIImage(cgBitmapContext.toImage()); NSData data = uiImage.toPNGData();/*from ww w . j av a2 s .c o m*/ byte[] encodedData = data.getBytes(); if (pixmap != null) { // release outdated native pixel buffer pixmap.dispose(); } pixmap = new Pixmap(encodedData, 0, encodedData.length); Gdx.gl.glTexImage2D(GL.TEXTURE_2D, 0, pixmap.getGLInternalFormat(), pixmap.getWidth(), pixmap.getHeight(), 0, pixmap.getGLFormat(), pixmap.getGLType(), pixmap.getPixels()); data.dispose(); uiImage.dispose(); encodedData = null; }
From source file:org.pidome.client.photoframe.screens.photoscreen.actors.PhotosActor.java
private Runnable switchimg() { Runnable run = () -> {//w w w .j a v a 2 s.c o m try { byte[] byteResult = readLocalRandomFile(); Pixmap map = new Pixmap(byteResult, 0, byteResult.length); Gdx.app.postRunnable(() -> { TextureRegionDrawable tex = new TextureRegionDrawable(new TextureRegion(new Texture(map))); map.dispose(); PhotoImage newImg = new PhotoImage(tex); newImg.setCorrectAspectSize(); images.add(0, newImg); stage.addActor(newImg); addTransform(newImg); }); } catch (Exception ex) { Logger.getLogger(PhotosActor.class.getName()).log(Level.WARNING, "Problem switching image: " + ex.getMessage(), ex); System.out.println("Problem switching image: " + ex.getMessage()); } }; return run; }
From source file:org.pidome.client.photoframe.screens.photoscreen.components.LeftTable.java
private void createContainerTable() { container.setSize(containersWidth, containersHeight); container.add(containerLabel).left().top().expandY().padLeft(10 * ScreenDisplay.getCurrentScale()); scroll.setScrollingDisabled(true, false); scroll.setScrollBarPositions(false, true); container.add(scroll).left().top().expandX().fillX().pad(20 * ScreenDisplay.getCurrentScale()); ShadedLabel closeLabel = new ShadedLabel("X"); closeLabel.addListener(new ClickListener() { @Override//www . j av a2s. c o m public void clicked(InputEvent event, float x, float y) { closeContainer(); } }); container.add(closeLabel).right().top().padRight(10 * ScreenDisplay.getCurrentScale()); Pixmap pm1 = new Pixmap(1, 1, Pixmap.Format.RGBA8888); pm1.setColor(0f, 0f, 0f, .7f); pm1.fill(); container.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(pm1)))); container.setPosition(containerLeftPosition, containerTopPosition); }
From source file:org.pidome.client.photoframe.screens.photoscreen.MainPhotoScreen.java
@Override public void show() { multiplexer.addProcessor(this); stage = new Stage(ScreenDisplay.getStageWidth(), ScreenDisplay.getStageHeight(), true); multiplexer.addProcessor(stage);/*w ww . ja v a 2 s . com*/ Gdx.input.setInputProcessor(multiplexer); if (!FrameSettings.isMirrorMode()) { photos = new PhotosActor(stage); photos.preload(); } cursor = new Texture(Gdx.files.internal("resources/skins/cursor.png")); xHotspot = 0; yHotspot = cursor.getHeight(); topTable = new TopTable(system); topTable.preload(); if (topTable.isActive()) { if (!FrameSettings.isMirrorMode()) { Pixmap pm1 = new Pixmap(1, 1, Format.RGBA8888); pm1.setColor(0f, 0f, 0f, .5f); pm1.fill(); topTable.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(pm1)))); } topTable.setSize(ScreenDisplay.getStageWidth(), topBarHeight); topTable.setPosition(0, ScreenDisplay.getStageHeight() - topBarHeight); stage.addActor(topTable); } bottomTable = new BottomTable(system, bottomBarHeight); bottomTable.preload(); if (bottomTable.isActive()) { bottomTable.setSize(ScreenDisplay.getStageWidth(), bottomBarHeight); if (!FrameSettings.isMirrorMode()) { Pixmap pm2 = new Pixmap(1, 1, Format.RGBA8888); pm2.setColor(0f, 0f, 0f, .7f); pm2.fill(); bottomTable.setBackground(new TextureRegionDrawable(new TextureRegion(new Texture(pm2)))); /* Texture tex = new Texture(Gdx.files.internal("resources/appimages/bars/bottom/background.png")); tex.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); bottomTable.setBackground(new TextureRegionDrawable(new TextureRegion(tex))); */ } stage.addActor(bottomTable); } if (FrameSettings.getAutomationControlsEnabled()) { leftTable = new LeftTable(system, stage); leftTable.preload(); if (topTable.isActive()) { leftTable.setHeight(ScreenDisplay.getStageHeight()); leftTable.setPosition(0, 0); stage.addActor(leftTable); } } }
From source file:org.shadebob.skineditor.actors.OptionsPane.java
License:Apache License
/** * //from w w w . j a v a 2s .c o m */ private void updateTableFields(final String style) { ImageButton button = (ImageButton) game.screenMain.barWidgets.group.getChecked(); String widget = button.getUserObject().toString(); Gdx.app.log("OptionsPane", "Update fields table for widget: " + widget + ", style: " + style); tableFields.clear(); tableFields.add(new Label("Name", game.skin, "title")).left().width(170); tableFields.add(new Label("Value", game.skin, "title")).left().width(60).padRight(50); tableFields.row(); Field[] fields = ClassReflection.getFields(currentStyle.getClass()); for (final Field field : fields) { try { // field name // White required // Grey optional if (game.opt.isFieldOptional(currentStyle.getClass(), field.getName())) { tableFields.add(new Label(field.getName(), game.skin, "optional")).left(); } else { tableFields.add(new Label(field.getName(), game.skin, "default")).left(); } Actor actor; // field type String name = field.getType().getSimpleName(); Object obj = field.get(currentStyle); if (name.equals("Drawable")) { /** * Handle Drawable object */ Drawable drawable = (Drawable) field.get(currentStyle); String resourceName = ""; ImageTextButton.ImageTextButtonStyle buttonStyle = new ImageTextButton.ImageTextButtonStyle( game.skin.getDrawable("default-round"), game.skin.getDrawable("default-round-down"), game.skin.getDrawable("default-round"), game.skin.getFont("default-font")); if (drawable != null) { resourceName = game.skinProject.resolveObjectName(Drawable.class, drawable); buttonStyle.imageUp = drawable; } else { buttonStyle.up = game.skinProject.getDrawable("default-rect"); buttonStyle.checked = game.skinProject.getDrawable("default-rect"); } actor = new ImageTextButton(resourceName, buttonStyle); ((ImageTextButton) actor).setClip(true); actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { showDrawableDialog(field); } }); } else if (name.equals("Color")) { /** * Handle Color object */ Color color = (Color) field.get(currentStyle); ImageTextButton.ImageTextButtonStyle buttonStyle = new ImageTextButton.ImageTextButtonStyle( game.skin.getDrawable("default-round"), game.skin.getDrawable("default-round-down"), game.skin.getDrawable("default-round"), game.skin.getFont("default-font")); String resourceName = ""; if (color != null) { resourceName = game.skinProject.resolveObjectName(Color.class, color); resourceName += " (" + color.toString() + ")"; // Create drawable on the fly Pixmap pixmap = new Pixmap(18, 18, Pixmap.Format.RGBA8888); pixmap.setColor(color); pixmap.fill(); pixmap.setColor(Color.BLACK); pixmap.drawRectangle(0, 0, 18, 18); Texture texture = new Texture(pixmap); buttonStyle.imageUp = new SpriteDrawable(new Sprite(texture)); pixmap.dispose(); } else { buttonStyle.up = game.skinProject.getDrawable("default-rect"); buttonStyle.checked = game.skinProject.getDrawable("default-rect"); } actor = new ImageTextButton(resourceName, buttonStyle); ((ImageTextButton) actor).setClip(true); actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { showColorPickerDialog(field); } }); } else if (name.equals("BitmapFont")) { /** * Handle BitmapFont object */ BitmapFont font = (BitmapFont) field.get(currentStyle); String resourceName = ""; ImageTextButton.ImageTextButtonStyle buttonStyle = new ImageTextButton.ImageTextButtonStyle( game.skin.getDrawable("default-round"), game.skin.getDrawable("default-round-down"), game.skin.getDrawable("default-round"), game.skin.getFont("default-font")); if (font != null) { resourceName = game.skinProject.resolveObjectName(BitmapFont.class, font); buttonStyle.font = font; } else { buttonStyle.up = game.skinProject.getDrawable("default-rect"); buttonStyle.checked = game.skinProject.getDrawable("default-rect"); } actor = new ImageTextButton(resourceName, buttonStyle); ((ImageTextButton) actor).setClip(true); actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { showFontPickerDialog(field); } }); } else if (name.equals("float")) { /** * Handle Float object */ Float value = (Float) field.get(currentStyle); String resourceName = ""; ImageTextButton.ImageTextButtonStyle buttonStyle = new ImageTextButton.ImageTextButtonStyle( game.skin.getDrawable("default-round"), game.skin.getDrawable("default-round-down"), game.skin.getDrawable("default-round"), game.skin.getFont("default-font")); if ((value != null) && (value != 0)) { resourceName = String.valueOf(value); } else { buttonStyle.up = game.skinProject.getDrawable("default-rect"); buttonStyle.checked = game.skinProject.getDrawable("default-rect"); } actor = new ImageTextButton(resourceName, buttonStyle); ((ImageTextButton) actor).setClip(true); actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { showFloatInputDialog(field); } }); } else if (name.equals("ListStyle")) { /** * Handle ListStyle object */ ListStyle listStyle = (ListStyle) field.get(currentStyle); actor = new SelectBox<String>(game.skin, "default"); Array<String> items = new Array<String>(); final ObjectMap<String, ListStyle> values = game.skinProject.getAll(ListStyle.class); Iterator<String> it = values.keys().iterator(); String selection = null; while (it.hasNext()) { String key = it.next(); items.add(key); if (listStyle == values.get(key)) { selection = key; } } ((SelectBox) actor).setItems(items); if (selection != null) { ((SelectBox) actor).setSelected(selection); } actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { String selection = (String) ((SelectBox) actor).getSelected(); try { field.set(currentStyle, values.get(selection)); } catch (Exception e) { e.printStackTrace(); } game.screenMain.saveToSkin(); refresh(); game.screenMain.paneOptions.updateSelectedTableFields(); game.screenMain.panePreview.refresh(); } }); } else if (name.equals("ScrollPaneStyle")) { /** * Handle ListStyle object */ ScrollPaneStyle scrollStyle = (ScrollPaneStyle) field.get(currentStyle); actor = new SelectBox<String>(game.skin, "default"); Array<String> items = new Array<String>(); final ObjectMap<String, ScrollPaneStyle> values = game.skinProject .getAll(ScrollPaneStyle.class); Iterator<String> it = values.keys().iterator(); String selection = null; while (it.hasNext()) { String key = it.next(); items.add(key); if (scrollStyle == values.get(key)) { selection = key; } } ((SelectBox) actor).setItems(items); if (selection != null) { ((SelectBox) actor).setSelected(selection); } actor.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { String selection = (String) ((SelectBox) actor).getSelected(); try { field.set(currentStyle, values.get(selection)); } catch (Exception e) { e.printStackTrace(); } game.screenMain.saveToSkin(); refresh(); game.screenMain.paneOptions.updateSelectedTableFields(); game.screenMain.panePreview.refresh(); } }); } else { Gdx.app.log("OptionsPane", "Unknown type: " + name); actor = new Label("Unknown Type", game.skin); } tableFields.add(actor).left().height(32).padRight(24).expandX().fillX(); tableFields.row(); } catch (Exception e) { e.printStackTrace(); } } }
From source file:org.shadebob.skineditor.ColorPickerDialog.java
License:Apache License
/** * Refresh table content with colors from the skin *///from w w w . java2 s . c o m public void updateTable() { tableColors.clear(); tableColors.add(new Label("Color Name", game.skin, "title")).left().width(170); tableColors.add(new Label("Value", game.skin, "title")).colspan(2).left().width(60).padRight(50); tableColors.row(); Iterator<String> it = colors.keys().iterator(); while (it.hasNext()) { final String key = it.next(); final Color color = colors.get(key); tableColors.add(key).left(); // Create drawable on the fly Pixmap pixmap = new Pixmap(18, 18, Pixmap.Format.RGBA8888); pixmap.setColor(color); pixmap.fill(); pixmap.setColor(Color.BLACK); pixmap.drawRectangle(0, 0, 18, 18); Texture texture = new Texture(pixmap); pixmap.dispose(); tableColors.add(new Image(texture)); tableColors.add(color.toString()).left(); TextButton buttonSelect = new TextButton("Select", game.skin); buttonSelect.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { try { field.set(game.screenMain.paneOptions.currentStyle, color); } catch (Exception e) { e.printStackTrace(); } hide(); game.screenMain.panePreview.refresh(); game.screenMain.paneOptions.updateSelectedTableFields(); game.screenMain.saveToSkin(); } }); TextButton buttonRemove = new TextButton("Remove", game.skin); buttonRemove.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Dialog dlg = new Dialog("Delete Style", game.skin) { @Override protected void result(Object object) { if ((Boolean) object == false) { return; } if (isColorInUse(color) == true) { game.showNotice("Error", "Color already in use!", game.screenMain.stage); } else { colors.remove(key); // update table updateTable(); game.screenMain.saveToSkin(); } } }; dlg.pad(20); dlg.getContentTable().add("You are sure you want to delete this color?"); dlg.button("OK", true); dlg.button("Cancel", false); dlg.key(com.badlogic.gdx.Input.Keys.ENTER, true); dlg.key(com.badlogic.gdx.Input.Keys.ESCAPE, false); dlg.show(game.screenMain.stage); } }); if (field != null) { tableColors.add(buttonSelect).padRight(5); } tableColors.add(buttonRemove); tableColors.row(); } }
From source file:org.shadebob.skineditor.dialog.ColorPickerDialog.java
License:Apache License
void updateTable() { colors = game.skinProject.getAll(Color.class); tableColors.clear();//from w ww .ja v a 2 s. c o m tableColors.add("Color Name", "title").left().width(170); tableColors.add("Value", "title").colspan(2).left().width(60).padRight(50); tableColors.row(); Iterator<String> it = colors.keys().iterator(); while (it.hasNext()) { final String key = it.next(); final Color color = colors.get(key); tableColors.add(key).left(); Texture texture = null; if (cachesMap.containsKey(color)) { texture = (Texture) cachesMap.get(color); } else { // Create drawable on the fly Pixmap pixmap = new Pixmap(18, 18, Pixmap.Format.RGBA8888); pixmap.setColor(color); pixmap.fill(); pixmap.setColor(Color.BLACK); pixmap.drawRectangle(0, 0, 18, 18); cachesMap.put(color, texture = new Texture(pixmap)); pixmap.dispose(); } tableColors.add(new Image(texture)); tableColors.add(color.toString()).left(); if (field != null) { tableColors.add(new TextButton("Select", game.skin)).left().getActor() .addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { try { field.set(game.screenMain.paneOptions.currentStyleObj, color); } catch (Exception e) { e.printStackTrace(); } hide(); game.screenMain.panePreview.refresh(); game.screenMain.paneOptions.updateSelectedTableFields(); game.screenMain.changeSkin(); } }); } tableColors.add(new TextButton("Remove", game.skin)).left().expandX().getActor() .addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Dialog dlg = new Dialog("Delete Style", game.skin) { @Override protected void result(Object object) { if (!(Boolean) object) { return; } if (CustomSkin.isResInUse(game.skinProject, color)) { game.showNotice("Error", "Color already in use!", game.screenMain.stage); } else { colors.remove(key); updateTable(); game.screenMain.changeSkin(); } } }; dlg.pad(20); dlg.getContentTable().add("You are sure you want to delete this color?"); dlg.button("OK", true).key(Keys.ENTER, true); dlg.button("Cancel", false).key(Keys.ESCAPE, false); dlg.show(game.screenMain.stage); } }); tableColors.row(); } }
From source file:releasethekraken.ui.renderer.GameRenderer.java
/** * Constructs a new GameRenderer// ww w . jav a2 s.c om * @param rtk The ReleaseTheKraken instance. This is final so that the * anonymous inner classes can access it. * @param world The world to be rendered */ public GameRenderer(final ReleaseTheKraken rtk, GameWorld world) { super(); this.world = world; //Populate the list of connected paths this.world.getFirstPath().getAllConnectedPaths(this.seaCreaturePaths); //Create the camera to view the world this.camera = new OrthographicCamera(); float cameraWidth = 80.0F; float cameraHeight = (Gdx.graphics.getHeight() * 1F / Gdx.graphics.getWidth()) * cameraWidth; this.camera.setToOrtho(false, cameraWidth, cameraHeight); Gdx.app.log("GameRenderer", "Calculated camera dimensions: " + cameraWidth + " x " + cameraHeight); this.worldSpriteBatch = new SpriteBatch(); this.worldShapeRenderer = new ShapeRenderer(); //Set the world renderers to render to the camera's projection matrix this.worldSpriteBatch.setProjectionMatrix(this.camera.combined); this.worldShapeRenderer.setProjectionMatrix(this.camera.combined); //Create the Box2D debug renderer this.box2DDebugRenderer = new Box2DDebugRenderer(); this.box2DDebugRenderer.setDrawVelocities(true); //Create the tile map renderer this.tiledMapRenderer = new OrthogonalTiledMapRenderer(world.getTiledMap(), 1 / (world.getTiledMapUnitScale())); //this.tiledMapRenderer.getBatch().setShader(GameAssets.tilemapShader); //Set the shader //Don't use the shader for now this.debugOverlay = new DebugOverlay(this); this.uiObjects.add(this.debugOverlay); UiButton pauseButton = new UiButton(this, Gdx.graphics.getWidth() - 0.075F * Gdx.graphics.getWidth(), Gdx.graphics.getHeight() - 0.05F * Gdx.graphics.getHeight(), 0.075F, 0.05F, "Pause", Color.GRAY.cpy().sub(0.1F, 0.1F, 0.1F, 0)) { @Override public void onClick(int mouseButton) { super.onClick(mouseButton); //Take a screenshot of the game Pixmap pixmap = Screenshots.getScreenshot(true); //Push a new pause screen onto the screen stack rtk.pushScreen(new PauseScreen(rtk, pixmap)); } }; pauseButton.setToolTip(new TextToolTip(this, "Pause the game")); this.uiObjects.add(pauseButton); UiButton debugMenuButton = new UiButton(this, Gdx.graphics.getWidth() - 0.2323F * Gdx.graphics.getWidth(), Gdx.graphics.getHeight() - 0.05F * Gdx.graphics.getHeight(), 0.157F, 0.05F, "Debug Screen", Color.GRAY.cpy().sub(0.1F, 0.1F, 0.1F, 0)) { @Override public void onClick(int mouseButton) { super.onClick(mouseButton); if (this.renderer instanceof GameRenderer) { ((GameRenderer) this.renderer).debugScreenVisible = !((GameRenderer) this.renderer).debugScreenVisible; //Toggle visibility Gdx.app.log("Debug Menu Button", "Debug screen " + (((GameRenderer) this.renderer).debugScreenVisible ? "ON" : "OFF")); } } }; debugMenuButton.setToolTip(new TextToolTip(this, "Show/Hide Debug Screen")); this.uiObjects.add(debugMenuButton); this.uiObjects.add(new Sidebar(this)); //Add the sidebar this.uiObjects.sort(); //Sort the UI objects so that they render in the order of their render depths //Generate path pixmap and texture Pixmap.setBlending(Pixmap.Blending.None); //Disable Pixmap blending, because it causes weird lines this.pathPixmap = new Pixmap((int) (this.world.getWidth() * this.world.getTiledMapUnitScale()), (int) (this.world.getHeight() * this.world.getTiledMapUnitScale()), Pixmap.Format.RGBA8888); //Make sure the pixmap is clear this.pathPixmap.setColor(new Color(0, 0, 0, 0)); //Completely clear this.pathPixmap.fill(); this.pathPixmap.setColor(Color.valueOf("61B5FF66")); //Partial transparency with color //Draw the path for every path for (SeaCreaturePath path : this.seaCreaturePaths) { CatmullRomSpline smoothPath = path.getSmoothPath(); Vector2 pathPoint = new Vector2(); //Move across the path from 0 to 1, drawing circles along the way for (float f = -0.1F; f < 1.1F; f += 0.001F) { smoothPath.valueAt(pathPoint, f); //Stores the value of the path at the point in the vector this.pathPixmap.fillCircle((int) (pathPoint.x * this.world.getTiledMapUnitScale()), (int) (this.world.getHeight() * this.world.getTiledMapUnitScale() - (pathPoint.y * this.world.getTiledMapUnitScale())), (int) this.world.getTiledMapUnitScale()); } } //Create texture to hold pixmap data this.pathTexture = new Texture(this.pathPixmap); this.pathTexture.draw(this.pathPixmap, 0, 0); //Draw the pixmap to the texture this.pathTexture.bind(1); //Bind the texture to texture unit 1 Gdx.gl.glActiveTexture(GL20.GL_TEXTURE0); //Set the active texture back to the normal one }
From source file:rescue.raiders.game.RescueRaiders.java
public static Texture fillRectangle(int width, int height, Color color) { Pixmap pix = new Pixmap(width, height, Pixmap.Format.RGBA8888); pix.setColor(color);//from w w w . j a va 2 s . c o m pix.fillRectangle(0, 0, width, height); Texture t = new Texture(pix); pix.dispose(); return t; }
From source file:rescue.raiders.game.RescueRaiders.java
public static Pixmap createPixmap(BufferedImage image) { int w = image.getWidth(); int h = image.getHeight(); Pixmap pix = new Pixmap(w, h, Pixmap.Format.RGBA8888); pix.setColor(0f, 0f, 0f, .45f);// ww w . j a v a2s. c om pix.fillRectangle(0, 0, w, h); int[] pixels = image.getRGB(0, 0, w, h, null, 0, w); for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { int pixel = pixels[y * w + x]; pix.drawPixel(x, y, getRGBA(pixel)); } } return pix; }