/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* 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 com.badlogic.gdx.maps;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.math.Matrix4;
/** Models a common way of rendering {@link Map} objects */
public interface MapRenderer {
/** Sets the projection matrix and viewbounds from the given camera. If the camera changes, you have to call this method again.
* The viewbounds are taken from the camera's position and viewport size as well as the scale. This method will only work if
* the camera's direction vector is (0,0,-1) and its up vector is (0, 1, 0), which are the defaults.
* @param camera the {@link OrthographicCamera} */
public void setView (OrthographicCamera camera);
/** Sets the projection matrix for rendering, as well as the bounds of the map which should be rendered. Make sure that the
* frustum spanned by the projection matrix coincides with the viewbounds.
* @param projectionMatrix
* @param viewboundsX
* @param viewboundsY
* @param viewboundsWidth
* @param viewboundsHeight */
public void setView (Matrix4 projectionMatrix, float viewboundsX, float viewboundsY, float viewboundsWidth,
float viewboundsHeight);
/** Renders all the layers of a map. */
public void render ();
/** Renders the given layers of a map.
*
* @param layers the layers to render. */
public void render (int[] layers);
}