Package ch.blackspirit.graphics

Examples of ch.blackspirit.graphics.Image


  public void draw(Graphics graphics, float width, float height, int subImageX, int subImageY, int subImageWidth, int subImageHeight) {
    draw(graphics, width, height, subImageX, subImageY, subImageWidth, subImageHeight, Flip.NONE);
  }
  public void draw(Graphics graphics, float width, float height, int subImageX, int subImageY, int subImageWidth, int subImageHeight, Flip flip) {
        T frame = getFrame();
        Image image = frame.getImage();

        graphics.drawImage(image,
        width, height,
        frame.getSubImageX() + subImageX, frame.getSubImageY() + subImageY,
        subImageWidth, subImageHeight,
View Full Code Here


public class ImageConverterTest {
  public static void main(String[] args) {
    RealtimeCanvas canvas = new CanvasFactory().createRealtimeCanvasWindow(512, 512);
    canvas.setWindowTitle("bla");
    final Image image = canvas.getImageFactory().createBufferedImage(521, 512, BufferTypes.RGB_3Byte);
   
    canvas.setGraphicsListener(new GraphicsListener() {
      public void draw(View view, Graphics renderer) {
        renderer.drawImage(image, 512, 512);
      }
      public void init(View view, Graphics renderer) {
        view.setCamera(256, 256, 0);
        view.setSize(512, 512);
        image.updateCache();
      }
      public void sizeChanged(GraphicsContext graphicsContext, View view) {}
    });
   
    ColorGradientFactory gradient = new ColorGradientFactory();
View Full Code Here

public class ImageConverterAlphaTest {
  public static void main(String[] args) {
    RealtimeCanvas canvas = new CanvasFactory().createRealtimeCanvasWindow(512, 512);
    canvas.setWindowTitle("bla");
    final Image image = canvas.getImageFactory().createBufferedImage(521, 512, BufferTypes.RGBA_4Byte);
   
    canvas.setGraphicsListener(new GraphicsListener() {
      public void draw(View view, Graphics renderer) {
        renderer.clear();
        renderer.drawImage(image, 512, 512);
      }
      public void init(View view, Graphics renderer) {
        view.setCamera(256, 256, 0);
        view.setSize(512, 512);
        image.updateCache();
      }
      public void sizeChanged(GraphicsContext graphicsContext, View view) {}
    });
   
    ColorGradientFactory gradient = new ColorGradientFactory();
View Full Code Here

    canvas.setVSync(true);
    canvas.addWindowListener(WindowListener.EXIT_ON_CLOSE);
    canvas.setWindowTitle("Capture Demo");
   
    final Image save = canvas.getImageFactory().createBufferedImage(400, 300, BufferTypes.RGB_3Byte);

    final Image animLeftImage = canvas.getImageFactory().createBufferedImage(
        CaptureDemo.class.getResource("/sprites/Crono - Walk (Left) 44x68.png"), false);
    Image animFrontImage = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/Crono - Walk (Front) 40x70.png"), false);
    Image animBackImage = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/Crono - Walk (Back) 36x70.png"), false);
    Image leftImage = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/Crono (Left).png"), false);
    Image frontImage = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/Crono (Front).png"), false);
    Image backImage = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/Crono (Back).png"), false);
    final Image grass = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/grass.png"), false);
    final Image wall = canvas.getImageFactory().createImage(
        CaptureDemo.class.getResource("/sprites/wall.png"), false);

    canvas.getResourceManager().cacheImage(animLeftImage);
    canvas.getResourceManager().cacheImage(animFrontImage);
    canvas.getResourceManager().cacheImage(animBackImage);
    canvas.getResourceManager().cacheImage(leftImage);
    canvas.getResourceManager().cacheImage(frontImage);
    canvas.getResourceManager().cacheImage(backImage);
    canvas.getResourceManager().cacheImage(grass)
    canvas.getResourceManager().cacheImage(wall);

    // Setting up the animations
    final Animation<Frame> animLeft = new AnimationImpl<Frame>();
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 0, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 45, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 90, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,135, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,180, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,225, 0, 44, 68));
    animLeft.setRepeated(true);
   
    final Animation<Frame> animFront = new AnimationImpl<Frame>();
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 0, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 41, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 82, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,123, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,164, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,205, 0, 40, 70));
    animFront.setRepeated(true);
   
   
    final Animation<Frame> animLeftStill = new AnimationImpl<Frame>();
    animLeftStill.addFrame(new FrameImpl(leftImage, 160000000, 0, 0, 28, 68));
    animLeftStill.setRepeated(true);
   
    final Animation<Frame> animFrontStill = new AnimationImpl<Frame>();
    animFrontStill.addFrame(new FrameImpl(frontImage, 160000000, 0, 0, 32, 70));
    animFrontStill.setRepeated(true);
   
    final Animation<Frame> animBackStill = new AnimationImpl<Frame>();
    animBackStill.addFrame(new FrameImpl(backImage, 160000000, 0, 0, 32, 66));
    animBackStill.setRepeated(true);
   
    final Animation<Frame> animBack = new AnimationImpl<Frame>();
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 0, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 37, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 74, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,111, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,148, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,185, 0, 36, 70));
    animBack.setRepeated(true);
   
    final Color4f white = new Color4f(1,1,1,1);
    final Color4f red = new Color4f(1,0,0,1);

    canvas.setGraphicsListener(new GraphicsListener() {
      long start = System.nanoTime();
      long currTime = start;
      long count = 0;
      long fps = 0;
 
      Animation<Frame> walk = animFrontStill;
      Flip flip = Flip.NONE;
      int xOffset = 0;

      public void draw(View view, Graphics renderer) {
        long elapsedTime = System.nanoTime() - currTime;
        currTime += elapsedTime;
       
        animLeft.update(elapsedTime);
        animFront.update(elapsedTime);
        animBack.update(elapsedTime);

        renderer.setColor(white);

        // Background
        for(int x = 0; x <= 400; x+=grass.getWidth() * 2) {
          for(int y = 0; y <= 300; y+=grass.getHeight() * 2) {
            renderer.translate(-x, -y);
            renderer.drawImage(grass, grass.getWidth() * 2, grass.getHeight() * 2);
            renderer.clearTransformation();
          }
        }
 
        for(int x = 0; x <= 400; x+=wall.getWidth() * 2) {
          renderer.translate(-x, -160);
          renderer.drawImage(wall, wall.getWidth() * 2, wall.getHeight() * 2);
          renderer.clearTransformation();
        }
     
        if(up && !down) {
          posY -= (float)elapsedTime / 11000000;
View Full Code Here

    canvas.setVSync(true);
    canvas.addWindowListener(WindowListener.EXIT_ON_CLOSE);
    canvas.setWindowTitle("Image Render Demo");
   
    final Image animLeftImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono - Walk (Left) 44x68.png"), false);
    Image animFrontImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono - Walk (Front) 40x70.png"), false);
    Image animBackImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono - Walk (Back) 36x70.png"), false);
    Image leftImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono (Left).png"), false);
    Image frontImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono (Front).png"), false);
    Image backImage = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/Crono (Back).png"), false);
    final Image grass = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/grass.png"), false);
    final Image wall = canvas.getImageFactory().createImage(
        ImageDemo.class.getResource("/sprites/wall.png"), false);

    canvas.getResourceManager().cacheImage(animLeftImage);
    canvas.getResourceManager().cacheImage(animFrontImage);
    canvas.getResourceManager().cacheImage(animBackImage);
    canvas.getResourceManager().cacheImage(leftImage);
    canvas.getResourceManager().cacheImage(frontImage);
    canvas.getResourceManager().cacheImage(backImage);
    canvas.getResourceManager().cacheImage(grass)
    canvas.getResourceManager().cacheImage(wall);

    // Setting up the animations
    final Animation<Frame> animLeft = new AnimationImpl<Frame>();
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 0, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 45, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 90, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,135, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,180, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,225, 0, 44, 68));
    animLeft.setRepeated(true);
   
    final Animation<Frame> animFront = new AnimationImpl<Frame>();
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 0, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 41, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 82, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,123, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,164, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,205, 0, 40, 70));
    animFront.setRepeated(true);
   
   
    final Animation<Frame> animLeftStill = new AnimationImpl<Frame>();
    animLeftStill.addFrame(new FrameImpl(leftImage, 160000000, 0, 0, 28, 68));
    animLeftStill.setRepeated(true);
   
    final Animation<Frame> animFrontStill = new AnimationImpl<Frame>();
    animFrontStill.addFrame(new FrameImpl(frontImage, 160000000, 0, 0, 32, 70));
    animFrontStill.setRepeated(true);
   
    final Animation<Frame> animBackStill = new AnimationImpl<Frame>();
    animBackStill.addFrame(new FrameImpl(backImage, 160000000, 0, 0, 32, 66));
    animBackStill.setRepeated(true);
   
    final Animation<Frame> animBack = new AnimationImpl<Frame>();
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 0, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 37, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 74, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,111, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,148, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,185, 0, 36, 70));
    animBack.setRepeated(true);
   
    final Color4f white = new Color4f(1,1,1,1);
    final Color4f white_alpha = new Color4f(1,1,1,.5f);
    final Color4f red = new Color4f(1,0,0,1);
    final Color4f green = new Color4f(0,1,0,1);
    final Color4f blue = new Color4f(0,0,1,1);

    canvas.setGraphicsListener(new GraphicsListener() {
      float angle = 0;
      long start = System.nanoTime();
      long currTime = start;
      long count = 0;
      long fps = 0;
 
      Animation<Frame> walk = animFrontStill;
      Flip flip = Flip.NONE;
      int xOffset = 0;

      public void draw(View view, Graphics renderer) {
        long elapsedTime = System.nanoTime() - currTime;
        currTime += elapsedTime;
       
        animLeft.update(elapsedTime);
        animFront.update(elapsedTime);
        animBack.update(elapsedTime);

        renderer.setColor(white);

        // Background
        for(int x = 0; x <= 800; x+=grass.getWidth() * 2) {
          for(int y = 0; y <= 600; y+=grass.getHeight() * 2) {
            renderer.pushTransform();
            renderer.translate(x, y);
            renderer.drawImage(grass, grass.getWidth() * 2, grass.getHeight() * 2);
//            renderer.clearTransformation();
            renderer.popTransform();
          }
        }
 
        for(int x = 0; x <= 800; x+=wall.getWidth() * 2) {
          renderer.pushTransform();
          renderer.translate(x, 160);
          renderer.drawImage(wall, wall.getWidth() * 2, wall.getHeight() * 2);
//          renderer.clearTransformation();
          renderer.popTransform();
        }
        for(int x = 0; x <= 800; x+=wall.getWidth() * 2) {
          renderer.pushTransform();
          renderer.translate(x, 380);
          renderer.drawImage(wall, wall.getWidth() * 2, wall.getHeight() * 2);
//          renderer.clearTransformation();
          renderer.popTransform();
        }
 
        for(int y = -16; y <= 400; y+=16) {
          renderer.pushTransform();
          renderer.translate(272, y);
          renderer.drawImage(wall, wall.getWidth() * 2, 30, 0, 0, wall.getWidth(), 15);
//          renderer.clearTransformation();
          renderer.popTransform();
        }
        renderer.pushTransform();
        renderer.translate(272, 400);
        renderer.drawImage(wall, wall.getWidth() * 2, wall.getHeight() * 2);
//        renderer.clearTransformation();
        renderer.popTransform();
        for(int y = -16; y <= 400; y+=16) {
          renderer.pushTransform();
          renderer.translate(512, y);
          renderer.drawImage(wall, wall.getWidth() * 2, 30, 0, 0, wall.getWidth(), 15);
//          renderer.clearTransformation();
          renderer.popTransform();
        }
        renderer.pushTransform();
        renderer.translate(512, 400);
        renderer.drawImage(wall, wall.getWidth() * 2, wall.getHeight() * 2);
//        renderer.clearTransformation();
        renderer.popTransform();
     
        // Animation
        int animationX = 50;
View Full Code Here

   
    canvas.setVSync(true);
    canvas.addWindowListener(WindowListener.EXIT_ON_CLOSE);
    canvas.setWindowTitle("Image Demo");

    final Image campfire = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/campfire.png"), false);
    final Image animLeftImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono - Walk (Left) 44x68.png"), false);
    final Image animFrontImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono - Walk (Front) 40x70.png"), false);
    final Image animBackImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono - Walk (Back) 36x70.png"), false);
    final Image leftImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono (Left).png"), false);
    final Image frontImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono (Front).png"), false);
    final Image backImage = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/Crono (Back).png"), false);
    final Image grass = canvas.getImageFactory().createImage(
        SceneDemo.class.getResource("/sprites/grass.png"), false);
   
    final Image dark = canvas.getImageFactory().createImage(128, 128, true);
    final Image light = canvas.getImageFactory().createBufferedImage(128, 128,
        BufferTypeUtil.getBest(canvas.getImageFactory(), true));
   
    ResourceManager rm = canvas.getResourceManager();
    rm.cacheImage(dark);
    rm.cacheImage(campfire);
    rm.cacheImage(animLeftImage);
    rm.cacheImage(animFrontImage);
    rm.cacheImage(animBackImage);
    rm.cacheImage(leftImage);
    rm.cacheImage(frontImage);
    rm.cacheImage(backImage);
    rm.cacheImage(grass)
    final Animation<Frame> animLeft = new AnimationImpl<Frame>();
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 0, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 45, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 90, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,135, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,180, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,225, 0, 44, 68));
    animLeft.setRepeated(true);

    final Animation<Frame> animFront = new AnimationImpl<Frame>();
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 0, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 41, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 82, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,123, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,164, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,205, 0, 40, 70));
    animFront.setRepeated(true);


    final Animation<Frame> animLeftStill = new AnimationImpl<Frame>();
    animLeftStill.addFrame(new FrameImpl(leftImage, 160000000, 0, 0, 28, 68));
    animLeftStill.setRepeated(true);
   
    final Animation<Frame> animFrontStill = new AnimationImpl<Frame>();
    animFrontStill.addFrame(new FrameImpl(frontImage, 160000000, 0, 0, 32, 70));
    animFrontStill.setRepeated(true);
   
    final Animation<Frame> animBackStill = new AnimationImpl<Frame>();
    animBackStill.addFrame(new FrameImpl(backImage, 160000000, 0, 0, 32, 66));
    animBackStill.setRepeated(true);

    final Animation<Frame> animBack = new AnimationImpl<Frame>();
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 0, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 37, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 74, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,111, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,148, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,185, 0, 36, 70));
    animBack.setRepeated(true);

    final Animation<Frame> animFire = new AnimationImpl<Frame>();
    animFire.addFrame(new FrameImpl(campfire, 120000000,1, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000, 66, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000, 131, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000,196, 1, 64, 80));
    animFire.setRepeated(true);

    final Color4f white = new Color4f(1,1,1,1);
    final Color4f red = new Color4f(1,0,0,1);
       
    ColorGradientFactory gradientFactory = new ColorGradientFactory();
    gradientFactory.addSourcePoint(light.getWidth() / 2, light.getHeight() / 2, light.getWidth() / 2f * .9f, new Color4f(0,0,0,0));
    gradientFactory.setBaseColor(new Color4f(1,1,1,1));
    gradientFactory.drawGradient(light);
 
    GraphicsContext imageContext = canvas.createImageGraphicsContext(dark);
    walk = animFrontStill;
View Full Code Here

    canvas.setVSync(true);
    canvas.addWindowListener(WindowListener.EXIT_ON_CLOSE);
    canvas.setWindowTitle("Image Render Demo");
   
    final Image animLeftImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono - Walk (Left) 44x68.png"), false);
   
    final Shape circle = ShapeFactory.createCircle(30, 25);
    final Shape circularArc = ShapeFactory.createCircularArc(30, -135, 135, 25);
    final Shape ellipse = ShapeFactory.createEllipse(75, 25, 25);
    final Shape ellipsoidalArc = ShapeFactory.createEllipsoidalArc(75, 25, 45, 315, 25);
    final Shape roundedRectangle = ShapeFactory.createRoundedRectangle(75, 40, 15);
    final Shape rectangle = ShapeFactory.createRectangle(75, 25);

    final Shape bscircle = ShapeFactory.createCircle(30, 25);

    List<Vector2f> rectOut = new ArrayList<Vector2f>();
    rectOut.add(new Vector2f(40, 10));
    rectOut.add(new Vector2f(-40, 10));
    rectOut.add(new Vector2f(-40, -10));
    rectOut.add(new Vector2f(40, -10));
    List<Vector2f> rectIn = new ArrayList<Vector2f>();
    rectIn.add(new Vector2f(20, 5));
    rectIn.add(new Vector2f(-20, 5));
    rectIn.add(new Vector2f(-20, -5));
    rectIn.add(new Vector2f(20, -5));
    List<List<Vector2f>> rectIns = new ArrayList<List<Vector2f>>();
    rectIns.add(rectIn);
    final Shape emptyRectangle = ShapeCreator.create(rectOut, rectIns);
   
    List<Vector2f> special1Outline = ShapeOutlineFactory.createRoundedRectangle(50, 40, 10, 3);
    List<Vector2f> special1Cutout1 = ShapeOutlineFactory.createRoundedRectangle(20, 30, 5, 3);

    List<List<Vector2f>> special1Cutouts = new ArrayList<List<Vector2f>>(2);
    special1Cutouts.add(special1Cutout1);
   
    final Shape manual1 = ShapeCreator.create(special1Outline, special1Cutouts);

    List<Vector2f> special2Outline = ShapeOutlineFactory.createCircle(30);
    List<Vector2f> special2Cutout1 = ShapeOutlineFactory.createCircle(10, 10);
    List<Vector2f> special2Cutout2 = ShapeOutlineFactory.createCircle(10, 10);
    for(Vector2f p: special2Cutout1) {
      p.x -= 15;
    }
    for(Vector2f p: special2Cutout2) {
      p.x += 15;
    }
    List<List<Vector2f>> special2Cutouts = new ArrayList<List<Vector2f>>(2);
    special2Cutouts.add(special2Cutout1);
    special2Cutouts.add(special2Cutout2);
   
    final Shape manual2 = ShapeCreator.create(special2Outline, special2Cutouts);

   
    final Image gradient = canvas.getImageFactory().createBufferedImage(256, 256,
        BufferTypeUtil.getBest(canvas.getImageFactory(), true));
   
    final Color4f white = new Color4f(1,1,1,1);
    final Color4f red = new Color4f(1,0,0,1);
       
    ColorGradientFactory gradientFactory = new ColorGradientFactory();
    gradientFactory.addSourceSegment(50, 0, 50, 255, 150, new Color4f(1, 0, 0, 1));
    gradientFactory.addSourceSegment(205, 0, 205, 255,150, new Color4f(0, 0, 1, 1));
    gradientFactory.drawGradient(gradient);

    final Font fontNormal = new Font("SansSerif", Font.PLAIN, 24);
    final Font fontSmall = new Font("SansSerif", Font.PLAIN, 16);
   
    System.out.println("starting demo");
    canvas.setGraphicsListener(new GraphicsListener() {
      long start = System.nanoTime();
      long currTime = start;
      long count = 0;
      long fps = 0;
 
      float angle = 0;

      public void draw(View view, Graphics renderer) {
        long elapsedTime = System.nanoTime() - currTime;
        currTime += elapsedTime;
 
        angle += elapsedTime / 20000000f;
        TextureMapper.mapTexture(roundedRectangle, gradient, 128, 128, angle, 2f);
        TextureMapper.mapTexture(bscircle, animLeftImage, 80, 30, angle, 1);

        renderer.clear();
       
        renderer.setColor(white);

        renderer.translate(50, 50);
        renderer.setFont(fontNormal);
        renderer.drawText("Shape Demo");

        renderer.setFont(fontSmall);
        renderer.clearTransform();
        renderer.translate(100, 100);
        renderer.drawText("Common Shapes");
       
        renderer.clearTransform();
        renderer.translate(100, 150);
        rectangle.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        roundedRectangle.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        circle.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        circularArc.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        ellipse.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        ellipsoidalArc.fillArea(renderer, false, false);

        renderer.clearTransform();
        renderer.translate(100, 230);
        renderer.drawTriangles(rectangle.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(roundedRectangle.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(circle.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(circularArc.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(ellipse.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(ellipsoidalArc.getTriangles(), false);
       
        renderer.clearTransform();
        renderer.translate(100, 350);
        renderer.drawText("Manually Created Shapes");

        renderer.clearTransform();
        renderer.translate(100, 400);
        emptyRectangle.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        manual1.fillArea(renderer, false, false);
        renderer.translate(100, 0);
        manual2.fillArea(renderer, false, false);

        renderer.clearTransform();
        renderer.translate(100, 480);
        renderer.drawTriangles(emptyRectangle.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(manual1.getTriangles(), false);
        renderer.translate(100, 0);
        renderer.drawTriangles(manual2.getTriangles(), false);

        renderer.clearTransform();
        renderer.translate(500, 350);
        renderer.drawText("Shape Texturing");

        renderer.clearTransform();
        renderer.translate(500, 400);
        bscircle.fillArea(renderer, false, true);
        renderer.translate(100, 0);
        roundedRectangle.fillArea(renderer, false, true);
   
        // draw frames per second
        renderer.setColor(red);
        renderer.clearTransform();
        renderer.translate(650, 580);
        renderer.drawText("FPS:" + fps);
       
        // calculate frames per second every second
        count++;
        if(currTime - start > 1000000000) {
          start = currTime;
          fps = count;
          count = 0;
          System.out.println(fps);
        }
       
      }

      public void init(View view, Graphics renderer) {
        System.out.println("init");
        view.setCamera(400, 300, 0);
        view.setSize(800, 600);
        gradient.updateCache();
      }
      public void sizeChanged(GraphicsContext graphicsContext, View view) {  }
     
    });
 
View Full Code Here

      }
     
      public Image getImage() {
        try {
             imageLock.lock();
          Image image = backBuffer;
          backBuffer = frontBuffer;
          frontBuffer = image;
          updated = false;
          return image;
        } finally {
View Full Code Here

    canvas.setWindowTitle("Image Render Demo");

    System.out.println("created");

   
    final Image campfire = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/campfire.png"), false);
    final Image animLeftImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono - Walk (Left) 44x68.png"), false);
    final Image animFrontImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono - Walk (Front) 40x70.png"), false);
    final Image animBackImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono - Walk (Back) 36x70.png"), false);
    final Image leftImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono (Left).png"), false);
    final Image frontImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono (Front).png"), false);
    final Image backImage = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/Crono (Back).png"), false);
    final Image grass = canvas.getImageFactory().createImage(
        ModeChangeDemo.class.getResource("/sprites/grass.png"), false);
   
    final Shape circle = ShapeFactory.createCircle(30, 25);
    final Shape circularArc = ShapeFactory.createCircularArc(30, -135, 135, 25);
//    final Shape ellipse = ShapeFactory.createEllipse(75, 25, 25);
    final Shape ellipse = ShapeFactory.createRoundedRectangle(120, 70, 25);
    final Shape ellipsoidalArc = ShapeFactory.createEllipsoidalArc(75, 25, 45, 315, 25);
//    final Shape rectangle = ShapeFactory.createRectangle(75, 25, false, false);
    List<Vector2f> rectOut = new ArrayList<Vector2f>();
    rectOut.add(new Vector2f(40, 10));
    rectOut.add(new Vector2f(-40, 10));
    rectOut.add(new Vector2f(-40, -10));
    rectOut.add(new Vector2f(40, -10));
    List<Vector2f> rectIn = new ArrayList<Vector2f>();
    rectIn.add(new Vector2f(20, 5));
    rectIn.add(new Vector2f(-20, 5));
    rectIn.add(new Vector2f(-20, -5));
    rectIn.add(new Vector2f(20, -5));
    List<List<Vector2f>> rectIns = new ArrayList<List<Vector2f>>();
    rectIns.add(rectIn);
    final Shape rectangle = ShapeCreator.create(rectOut, rectIns);
   
    final Image dark = canvas.getImageFactory().createImage(128, 128, true);
    final Image darktest = canvas.getImageFactory().createImage(128, 128, true);
//    final Image dark = canvas.getImageFactory().createBufferedImage(128, 128, BufferTypes.RGBA_4Byte);
    final Image gradient = canvas.getImageFactory().createBufferedImage(256, 256, BufferTypes.RGBA_4Byte);
    final Image light = canvas.getImageFactory().createBufferedImage(128, 128, BufferTypes.RGBA_4Byte);
   
    ResourceManager rm = canvas.getResourceManager();
    rm.cacheImage(dark);
    rm.cacheImage(campfire);
    rm.cacheImage(animLeftImage);
    rm.cacheImage(animFrontImage);
    rm.cacheImage(animBackImage);
    rm.cacheImage(leftImage);
    rm.cacheImage(frontImage);
    rm.cacheImage(backImage);
    rm.cacheImage(grass)
    final Animation<Frame> animLeft = new AnimationImpl<Frame>();
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 0, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 45, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000, 90, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,135, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,180, 0, 44, 68));
    animLeft.addFrame(new FrameImpl(animLeftImage, 160000000,225, 0, 44, 68));
    animLeft.setRepeated(true);

    final Animation<Frame> animFront = new AnimationImpl<Frame>();
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 0, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 41, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000, 82, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,123, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,164, 0, 40, 70));
    animFront.addFrame(new FrameImpl(animFrontImage, 160000000,205, 0, 40, 70));
    animFront.setRepeated(true);


    final Animation<Frame> animLeftStill = new AnimationImpl<Frame>();
    animLeftStill.addFrame(new FrameImpl(leftImage, 160000000, 0, 0, 28, 68));
    animLeftStill.setRepeated(true);
   
    final Animation<Frame> animFrontStill = new AnimationImpl<Frame>();
    animFrontStill.addFrame(new FrameImpl(frontImage, 160000000, 0, 0, 32, 70));
    animFrontStill.setRepeated(true);
   
    final Animation<Frame> animBackStill = new AnimationImpl<Frame>();
    animBackStill.addFrame(new FrameImpl(backImage, 160000000, 0, 0, 32, 66));
    animBackStill.setRepeated(true);

    final Animation<Frame> animBack = new AnimationImpl<Frame>();
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 0, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 37, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000, 74, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,111, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,148, 0, 36, 70));
    animBack.addFrame(new FrameImpl(animBackImage, 160000000,185, 0, 36, 70));
    animBack.setRepeated(true);

    final Animation<Frame> animFire = new AnimationImpl<Frame>();
    animFire.addFrame(new FrameImpl(campfire, 120000000,1, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000, 66, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000, 131, 1, 64, 80));
    animFire.addFrame(new FrameImpl(campfire, 120000000,196, 1, 64, 80));
    animFire.setRepeated(true);

//    final Color4f red = new Color4f(1,0,0,1);
    final Color4f white = new Color4f(1,1,1,1);
       
    ColorGradientFactory gradientFactory = new ColorGradientFactory();
    gradientFactory.addSourceSegment(50, 0, 50, 255, 150, new Color4f(1, 0, 0, 1));
    gradientFactory.addSourceSegment(205, 0, 205, 255,150, new Color4f(0, 0, 1, 1));
//    gradientFactory.addSourceSegment(0, 0, 0, 255, 256, new Color4f(0, 0, 0, 1));
//    gradientFactory.addSourceSegment(255, 0, 255, 255, 256, new Color4f(1, 1, 1, 1));
    gradientFactory.drawGradient(gradient);
//    gradient.setDirty();

    gradientFactory.clearSources();
    gradientFactory.addSourcePoint(light.getWidth() / 2, light.getHeight() / 2, light.getWidth() / 2f * .9f, new Color4f(0,0,0,0));
    gradientFactory.setBaseColor(new Color4f(1,1,1,1));
    gradientFactory.drawGradient(light);
//    gradientFactory.addSourceSegment(0, 0, 255, 255, new Color4f(1, 1, 1, 1));

//    rm.cacheImage(gradient);
View Full Code Here

        .createRealtimeCanvasWindow(800, 600);
   
    canvas.addWindowListener(WindowListener.EXIT_ON_CLOSE);
    canvas.setWindowTitle("Particle Demo");
   
    final Image image = canvas.getImageFactory().createImage(
        ParticleDemo.class.getResource("/ch/blackspirit/graphics/particle/particle.png"), false);
    canvas.getResourceManager().cacheImage(image);

    // Setup fire particle system
    final ParticleSystem<Particle> fireSystem = new ParticleSystem<Particle>(Particle.class);
View Full Code Here

TOP

Related Classes of ch.blackspirit.graphics.Image

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.