/**
* Copyright 2012 Jason Sorensen (sorensenj@smert.net)
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
package net.smert.frameworkgl.opengl.renderer;
import java.util.List;
import net.smert.frameworkgl.gameobjects.GameObject;
import net.smert.frameworkgl.math.Transform4f;
import net.smert.frameworkgl.math.Vector3f;
import net.smert.frameworkgl.opengl.camera.Camera;
import net.smert.frameworkgl.opengl.renderable.AbstractRenderable;
import net.smert.frameworkgl.opengl.shader.AbstractShader;
/**
*
* @author Jason Sorensen <sorensenj@smert.net>
*/
public interface GLRenderer {
public void color(float r, float g, float b, float a);
public void disableTexture2D();
public void disableTexture3D();
public void disableTextureCubeMap();
public void enableTexture2D();
public void enableTexture3D();
public void enableTextureCubeMap();
public void popMatrix();
public void pushMatrix();
public void render(AbstractRenderable renderable);
public void render(AbstractRenderable renderable, float x, float y, float z);
public void render(AbstractRenderable renderable, Transform4f transform);
public void render(AbstractRenderable renderable, Vector3f position);
public void render(GameObject gameObject);
public void render(List<GameObject> gameObjects);
public void renderBlend(GameObject gameObject);
public void renderBlend(List<GameObject> gameObjects);
public void renderOpaque(GameObject gameObject);
public void renderOpaque(List<GameObject> gameObjects);
public void scale(float x, float y, float z);
public void scale(Vector3f scaling);
public void set2DMode();
public void set2DMode(int width, int height);
public void setCamera(Camera camera);
public void switchShader(AbstractShader shader);
public void translate(float x, float y, float z);
public void translate(Vector3f position);
public void unbindShader();
}