예제 #1
0
파일: Scene.java 프로젝트: slimon0/Stardust
  public void render(Renderer renderer) {
    // Find renderables and sort them by depth
    List<Renderable> renderables = new ArrayList<>();

    for (GameObject actor : actors) {
      if (actor instanceof Renderable) {
        renderables.add((Renderable) actor);
      }
    }

    renderables.sort((o1, o2) -> (int) (Integer.MAX_VALUE * (o2.getDepth() - o1.getDepth())));

    // Apply camera
    renderer.pushMatrix();
    if (camera != null) {
      camera.applyTransforms(renderer);
    }

    // render objects
    for (Renderable renderable : renderables) {
      renderable.render(renderer);
    }

    renderer.popMatrix();
  }
 public static Sampleable sampleable(Renderable base) {
   BoundingBox bb = base.getBoundingBox();
   OverlayRaster or = new OverlayRaster(bb.intRight() + 1, bb.intBottom() + 1);
   base.render(or);
   return new AbstractSampleable(bb) {
     @Override
     public Color getColorAt(Point<Double> point) {
       return or.getColor(point.toIntegerPoint());
     }
   };
 }
 protected void doRender(DrawContext dc, Iterable<? extends Renderable> renderables) {
   for (Renderable renderable : renderables) {
     try {
       // If the caller has specified their own Iterable,
       // then we cannot make any guarantees about its contents.
       if (renderable != null) renderable.render(dc);
     } catch (Exception e) {
       String msg = Logging.getMessage("generic.ExceptionWhileRenderingRenderable");
       Logging.logger().log(java.util.logging.Level.SEVERE, msg, e);
       // continue to next renderable
     }
   }
 }
예제 #4
0
  public void render() {

    glClear(GL_COLOR_BUFFER_BIT);
    glLoadIdentity();

    Collections.sort(Handler.renderables);

    for (Renderable renderable : Handler.renderables) {
      renderable.render();
    }

    /*
     * EntityHandler.render();
    SpellHandler.render();
     */

    Display.update();
    Display.sync(60);
  }
예제 #5
0
파일: World.java 프로젝트: xicalango/xxJOGL
  @Override
  public void render(GL2 gl, GLU glu, GLUT glut) {

    // camera.prepare(gl, glu, glut);

    // preRendering(gl, glu, glut);

    gl.glLoadIdentity();

    camera.prepare(gl, glu, glut);

    setupWorld(gl, glu, glut);

    for (Renderable r : this) {
      gl.glPushMatrix();

      r.render(gl, glu, glut);

      gl.glPopMatrix();
    }
  }
  protected void doPick(
      DrawContext dc, Iterable<? extends Renderable> renderables, java.awt.Point pickPoint) {
    this.pickSupport.clearPickList();
    this.pickSupport.beginPicking(dc);

    try {
      for (Renderable renderable : renderables) {
        // If the caller has specified their own Iterable,
        // then we cannot make any guarantees about its contents.
        if (renderable != null) {
          float[] inColor = new float[4];
          dc.getGL().glGetFloatv(GL.GL_CURRENT_COLOR, inColor, 0);
          java.awt.Color color = dc.getUniquePickColor();
          dc.getGL()
              .glColor3ub((byte) color.getRed(), (byte) color.getGreen(), (byte) color.getBlue());

          try {
            renderable.render(dc);
          } catch (Exception e) {
            String msg = Logging.getMessage("generic.ExceptionWhilePickingRenderable");
            Logging.logger().severe(msg);
            continue; // go on to next renderable
          }

          dc.getGL().glColor4fv(inColor, 0);

          if (renderable instanceof Locatable) {
            this.pickSupport.addPickableObject(
                color.getRGB(), renderable, ((Locatable) renderable).getPosition(), false);
          } else {
            this.pickSupport.addPickableObject(color.getRGB(), renderable);
          }
        }
      }

      this.pickSupport.resolvePick(dc, pickPoint, this);
    } finally {
      this.pickSupport.endPicking(dc);
    }
  }
 @Override
 public void render(Screen screen) throws IOException {
   a.render(screen);
   b.render(screen);
 }
예제 #8
0
 /** Renders all Renderables in the specified array onto the specified Graphics2D. */
 private void renderOnGraphics(Graphics2D g, Renderable[] renderItems) {
   for (Renderable r : renderItems) r.render(bufferGraphics);
 }