Home | History | Annotate | Download | only in graphics
      1 /*******************************************************************************
      2  * Copyright 2011 See AUTHORS file.
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *   http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  ******************************************************************************/
     16 
     17 package com.badlogic.gdx.backends.headless.mock.graphics;
     18 
     19 import com.badlogic.gdx.Application;
     20 import com.badlogic.gdx.Graphics;
     21 import com.badlogic.gdx.graphics.Cursor;
     22 import com.badlogic.gdx.graphics.GL20;
     23 import com.badlogic.gdx.graphics.GL30;
     24 import com.badlogic.gdx.graphics.Pixmap;
     25 import com.badlogic.gdx.graphics.Cursor.SystemCursor;
     26 import com.badlogic.gdx.graphics.glutils.GLVersion;
     27 
     28 /** The headless backend does its best to mock elements. This is intended to make code-sharing between
     29  * server and client as simple as possible.
     30  */
     31 public class MockGraphics implements Graphics {
     32 	long frameId = -1;
     33 	float deltaTime = 0;
     34 	long frameStart = 0;
     35 	int frames = 0;
     36 	int fps;
     37 	long lastTime = System.nanoTime();
     38 	GLVersion glVersion = new GLVersion(Application.ApplicationType.HeadlessDesktop, "", "", "");
     39 	@Override
     40 	public boolean isGL30Available() {
     41 		return false;
     42 	}
     43 
     44 	@Override
     45 	public GL20 getGL20() {
     46 		return null;
     47 	}
     48 
     49 	@Override
     50 	public GL30 getGL30() {
     51 		return null;
     52 	}
     53 
     54 	@Override
     55 	public int getWidth() {
     56 		return 0;
     57 	}
     58 
     59 	@Override
     60 	public int getHeight() {
     61 		return 0;
     62 	}
     63 
     64 	@Override
     65 	public int getBackBufferWidth() {
     66 		return 0;
     67 	}
     68 
     69 	@Override
     70 	public int getBackBufferHeight() {
     71 		return 0;
     72 	}
     73 
     74 	@Override
     75 	public long getFrameId() {
     76 		return frameId;
     77 	}
     78 
     79 	@Override
     80 	public float getDeltaTime() {
     81 		return deltaTime;
     82 	}
     83 
     84 	@Override
     85 	public float getRawDeltaTime() {
     86 		return 0;
     87 	}
     88 
     89 	@Override
     90 	public int getFramesPerSecond() {
     91 		return 0;
     92 	}
     93 
     94 	@Override
     95 	public GraphicsType getType() {
     96 		return GraphicsType.Mock;
     97 	}
     98 
     99 	@Override
    100 	public GLVersion getGLVersion () {
    101 		return glVersion;
    102 	}
    103 
    104 	@Override
    105 	public float getPpiX() {
    106 		return 0;
    107 	}
    108 
    109 	@Override
    110 	public float getPpiY() {
    111 		return 0;
    112 	}
    113 
    114 	@Override
    115 	public float getPpcX() {
    116 		return 0;
    117 	}
    118 
    119 	@Override
    120 	public float getPpcY() {
    121 		return 0;
    122 	}
    123 
    124 	@Override
    125 	public float getDensity() {
    126 		return 0;
    127 	}
    128 
    129 	@Override
    130 	public boolean supportsDisplayModeChange() {
    131 		return false;
    132 	}
    133 
    134 	@Override
    135 	public DisplayMode[] getDisplayModes() {
    136 		return new DisplayMode[0];
    137 	}
    138 
    139 	@Override
    140 	public DisplayMode getDisplayMode() {
    141 		return null;
    142 	}
    143 
    144 	@Override
    145 	public boolean setFullscreenMode(DisplayMode displayMode) {
    146 		return false;
    147 	}
    148 
    149 	@Override
    150 	public boolean setWindowedMode(int width, int height) {
    151 		return false;
    152 	}
    153 
    154 	@Override
    155 	public void setTitle(String title) {
    156 
    157 	}
    158 
    159 	@Override
    160 	public void setVSync(boolean vsync) {
    161 
    162 	}
    163 
    164 	@Override
    165 	public BufferFormat getBufferFormat() {
    166 		return null;
    167 	}
    168 
    169 	@Override
    170 	public boolean supportsExtension(String extension) {
    171 		return false;
    172 	}
    173 
    174 	@Override
    175 	public void setContinuousRendering(boolean isContinuous) {
    176 
    177 	}
    178 
    179 	@Override
    180 	public boolean isContinuousRendering() {
    181 		return false;
    182 	}
    183 
    184 	@Override
    185 	public void requestRendering() {
    186 
    187 	}
    188 
    189 	@Override
    190 	public boolean isFullscreen() {
    191 		return false;
    192 	}
    193 
    194 	public void updateTime () {
    195 		long time = System.nanoTime();
    196 		deltaTime = (time - lastTime) / 1000000000.0f;
    197 		lastTime = time;
    198 
    199 		if (time - frameStart >= 1000000000) {
    200 			fps = frames;
    201 			frames = 0;
    202 			frameStart = time;
    203 		}
    204 		frames++;
    205 	}
    206 
    207 	public void incrementFrameId () {
    208 		frameId++;
    209 	}
    210 
    211 	@Override
    212 	public Cursor newCursor (Pixmap pixmap, int xHotspot, int yHotspot) {
    213 		return null;
    214 	}
    215 
    216 	@Override
    217 	public void setCursor (Cursor cursor) {
    218 	}
    219 
    220 	@Override
    221 	public void setSystemCursor (SystemCursor systemCursor) {
    222 	}
    223 
    224 	@Override
    225 	public Monitor getPrimaryMonitor() {
    226 		return null;
    227 	}
    228 
    229 	@Override
    230 	public Monitor getMonitor() {
    231 		return null;
    232 	}
    233 
    234 	@Override
    235 	public Monitor[] getMonitors() {
    236 		return null;
    237 	}
    238 
    239 	@Override
    240 	public DisplayMode[] getDisplayModes(Monitor monitor) {
    241 		return null;
    242 	}
    243 
    244 	@Override
    245 	public DisplayMode getDisplayMode(Monitor monitor) {
    246 		return null;
    247 	}
    248 
    249 	@Override
    250 	public void setUndecorated(boolean undecorated) {
    251 
    252 	}
    253 
    254 	@Override
    255 	public void setResizable(boolean resizable) {
    256 
    257 	}
    258 }
    259