Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:MovingBlocks/Terasology into dev…
Browse files Browse the repository at this point in the history
…elop
  • Loading branch information
begla committed Mar 13, 2012
2 parents f7cac5b + 4aca9a5 commit aa49f5a
Show file tree
Hide file tree
Showing 19 changed files with 84 additions and 55 deletions.
8 changes: 7 additions & 1 deletion build.gradle
Expand Up @@ -10,8 +10,14 @@ apply plugin: 'groovy'
apply plugin: 'eclipse'
apply plugin: 'idea'

idea {
project {
jdkName = '1.6'
}
}

sourceCompatibility = 1.5
version = '0.5.0'
//version = '0.5.0' //TODO: Disabled version tagging until we actually have something solid to do with it (was breaking old artifact links)
buildDir = 'out'

sourceSets {
Expand Down
@@ -1,9 +1,8 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

import static org.lwjgl.openal.AL10.*;
Expand Down
@@ -1,8 +1,7 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.lwjgl.openal.AL10;

import java.io.IOException;
import java.net.URL;
import java.nio.ByteBuffer;

Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.terasology.logic.manager.AudioManager;

Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.lwjgl.openal.AL10;
import org.lwjgl.openal.AL11;
Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;


public class BasicStreamingSoundPool extends BasicSoundPool {
Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.lwjgl.BufferUtils;

Expand Down
@@ -1,11 +1,10 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.lwjgl.BufferUtils;
import org.lwjgl.openal.AL10;
import org.terasology.utilities.OggReader;

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.terasology.utilities.OggReader;

Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import org.lwjgl.openal.AL10;

Expand Down
@@ -1,24 +1,24 @@
package org.terasology.logic.audio;
package org.terasology.audio;


import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.openal.AL;
import org.lwjgl.openal.AL10;
import org.lwjgl.openal.AL11;
import org.lwjgl.openal.*;
import org.terasology.game.Terasology;
import org.terasology.logic.characters.Player;
import org.terasology.logic.manager.AudioManager;

import javax.vecmath.Vector3d;
import java.io.InputStream;
import java.net.URL;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;

public class OpenALManager extends AudioManager {

/** For faster distance check **/
private final static float MAX_DISTANCE_SQUARED = (float)Math.pow(MAX_DISTANCE, 2);
/**
* For faster distance check *
*/
private final static float MAX_DISTANCE_SQUARED = (float) Math.pow(MAX_DISTANCE, 2);

public static OpenALManager getInstance() {
return (OpenALManager) AudioManager.getInstance();
Expand All @@ -35,6 +35,29 @@ public void initialize() {

AL10.alGetError();

logger.info("OpenAL " + AL10.alGetString(AL10.AL_VERSION) + " initialized!");

ALCcontext context = ALC10.alcGetCurrentContext();
ALCdevice device = ALC10.alcGetContextsDevice(context);

logger.info("Using OpenAL: " + AL10.alGetString(AL10.AL_RENDERER) + " by " + AL10.alGetString(AL10.AL_VENDOR));
logger.info("Using device: " + ALC10.alcGetString(device, ALC10.ALC_DEVICE_SPECIFIER));
logger.info("Available AL extensions: " + AL10.alGetString(AL10.AL_EXTENSIONS));
logger.info("Available ALC extensions: " + ALC10.alcGetString(device, ALC10.ALC_EXTENSIONS));

IntBuffer buffer = BufferUtils.createIntBuffer(1);
ALC10.alcGetInteger(device, ALC11.ALC_MONO_SOURCES, buffer);
logger.info("Max mono sources: " + buffer.get(0));
buffer.rewind();

ALC10.alcGetInteger(device, ALC11.ALC_STEREO_SOURCES, buffer);
logger.info("Max stereo sources: " + buffer.get(0));
buffer.rewind();

ALC10.alcGetInteger(device, ALC10.ALC_FREQUENCY, buffer);
logger.info("Mixer frequency: " + buffer.get(0));
buffer.rewind();

AL10.alDistanceModel(AL10.AL_INVERSE_DISTANCE_CLAMPED);

// Initialize sound pools
Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import java.io.File;
import java.io.InputStream;
Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import java.util.Set;

Expand Down
@@ -1,4 +1,4 @@
package org.terasology.logic.audio;
package org.terasology.audio;

import javax.vecmath.Vector3d;

Expand Down
2 changes: 1 addition & 1 deletion src/org/terasology/logic/characters/Player.java
Expand Up @@ -21,7 +21,7 @@
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import org.terasology.game.Terasology;
import org.terasology.logic.audio.Sound;
import org.terasology.audio.Sound;
import org.terasology.logic.manager.*;
import org.terasology.logic.tools.ITool;
import org.terasology.logic.world.Chunk;
Expand Down
2 changes: 1 addition & 1 deletion src/org/terasology/logic/entities/MovableEntity.java
Expand Up @@ -16,7 +16,7 @@
package org.terasology.logic.entities;

import org.terasology.game.Terasology;
import org.terasology.logic.audio.Sound;
import org.terasology.audio.Sound;
import org.terasology.logic.manager.AudioManager;
import org.terasology.logic.manager.Config;
import org.terasology.math.TeraMath;
Expand Down
3 changes: 1 addition & 2 deletions src/org/terasology/logic/generators/ChunkGenerator.java
Expand Up @@ -17,7 +17,6 @@

import org.terasology.logic.world.Chunk;
import org.terasology.utilities.PerlinNoise;
import sun.reflect.generics.reflectiveObjects.NotImplementedException;

/**
* Generators are used to generate the terrain, to generate caves and to populate the surface.
Expand Down Expand Up @@ -59,6 +58,6 @@ public ChunkGenerator(GeneratorManager generatorManager) {
* @param c The chunk to generate/populate
*/
public void generate(Chunk c) {
throw new NotImplementedException();
throw new UnsupportedOperationException();
}
}
8 changes: 4 additions & 4 deletions src/org/terasology/logic/manager/AudioManager.java
Expand Up @@ -15,10 +15,10 @@
*/
package org.terasology.logic.manager;

import org.terasology.logic.audio.OpenALManager;
import org.terasology.logic.audio.Sound;
import org.terasology.logic.audio.SoundPool;
import org.terasology.logic.audio.SoundSource;
import org.terasology.audio.OpenALManager;
import org.terasology.audio.Sound;
import org.terasology.audio.SoundPool;
import org.terasology.audio.SoundSource;
import org.terasology.logic.entities.MovableEntity;

import javax.vecmath.Vector3d;
Expand Down
52 changes: 28 additions & 24 deletions src/org/terasology/rendering/world/WorldRenderer.java
Expand Up @@ -628,35 +628,39 @@ public boolean generateChunk() {
}

public void printScreen() {
// TODO: REFACTOR TO USE BACKGROUND THREAD FOR IMAGE COPY & SAVE
GL11.glReadBuffer(GL11.GL_FRONT);
int width = Display.getDisplayMode().getWidth();
int height = Display.getDisplayMode().getHeight();
final int width = Display.getDisplayMode().getWidth();
final int height = Display.getDisplayMode().getHeight();
//int bpp = Display.getDisplayMode().getBitsPerPixel(); does return 0 - why?
int bpp = 4;
ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * bpp); // hardcoded until i know how to get bpp
final int bpp = 4;
final ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * bpp); // hardcoded until i know how to get bpp
GL11.glReadPixels(0, 0, width, height, (bpp == 3) ? GL11.GL_RGB : GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer);

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");

File file = new File(sdf.format(cal.getTime()) + ".png");
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

for (int x = 0; x < width; x++)
for (int y = 0; y < height; y++) {
int i = (x + (width * y)) * bpp;
int r = buffer.get(i) & 0xFF;
int g = buffer.get(i + 1) & 0xFF;
int b = buffer.get(i + 2) & 0xFF;
image.setRGB(x, height - (y + 1), (0xFF << 24) | (r << 16) | (g << 8) | b);
Runnable r = new Runnable() {
public void run() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssSSS");

File file = new File(sdf.format(cal.getTime()) + ".png");
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

for (int x = 0; x < width; x++)
for (int y = 0; y < height; y++) {
int i = (x + (width * y)) * bpp;
int r = buffer.get(i) & 0xFF;
int g = buffer.get(i + 1) & 0xFF;
int b = buffer.get(i + 2) & 0xFF;
image.setRGB(x, height - (y + 1), (0xFF << 24) | (r << 16) | (g << 8) | b);
}

try {
ImageIO.write(image, "png", file);
} catch (IOException e) {
Terasology.getInstance().getLogger().log(Level.WARNING, "Could not save image!", e);
}
}
};

try {
ImageIO.write(image, "png", file);
} catch (IOException e) {
Terasology.getInstance().getLogger().log(Level.WARNING, "Could not save image!", e);
}
Terasology.getInstance().submitTask("Write screenshot", r);
}


Expand Down

0 comments on commit aa49f5a

Please sign in to comment.