Code Search for Developers
 
 
  

DrunkenHyenaTriangles.java from Lightweight Java Game Library at Krugle


Show DrunkenHyenaTriangles.java syntax highlighted

package org.lwjgl.test.d3d;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

import org.lwjgl.LWJGLException;
import org.lwjgl.d3d.D3DPresentParameters;
import org.lwjgl.d3d.Direct3DConstants;
import org.lwjgl.d3d.Display;
import org.lwjgl.d3d.DisplayMode;
import org.lwjgl.d3d.IDirect3D9;
import org.lwjgl.d3d.IDirect3DDevice9;
import org.lwjgl.input.Keyboard;

public class DrunkenHyenaTriangles {
    private static final int STRUCTURE_SIZE = 20;
    private static final int WIDTH = 640;
    private static final int HEIGHT = 480;
    private ByteBuffer fan1;
    private ByteBuffer fan2;
    private ByteBuffer strip;
    
    public void run() {
        try {
            DisplayMode[] modes = Display.getAvailableDisplayModes();
            for (int i = 0; i < modes.length; i++) {
                if (modes[i].getWidth() == WIDTH && modes[i].getHeight() == HEIGHT && modes[i].getBitsPerPixel() >= 32 && modes[i].getFrequency() <= 75) {
                    try {
                        Display.setDisplayMode(modes[i]);
                    } catch (LWJGLException e) {
                        e.printStackTrace();
                    }
                }
            }
            Display.create();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        IDirect3D9 iDirect3D9 = IDirect3D9.create();

        D3DPresentParameters params = new D3DPresentParameters();
        params.Windowed = true;
        params.BackBufferCount = 1;
        params.SwapEffect = Direct3DConstants.D3DSWAPEFFECT_FLIP;
        params.BackBufferFormat = Direct3DConstants.D3DFMT_UNKNOWN;
        IDirect3DDevice9 iDirect3DDevice9 = new IDirect3DDevice9();
        
        iDirect3D9.createDevice(Direct3DConstants.D3DADAPTER_DEFAULT, Direct3DConstants.D3DDEVTYPE_HAL, 
                Display.getHwnd(), Direct3DConstants.D3DCREATE_SOFTWARE_VERTEXPROCESSING, params, 
                iDirect3DDevice9);
        
        try {
            Keyboard.create();
        }
        catch(LWJGLException e) {
            e.printStackTrace();
        }
        
        createPrimitives();
        
        while(Keyboard.getEventKey() != Keyboard.KEY_ESCAPE || Display.isCloseRequested()) {
            iDirect3DDevice9.beginScene();
            iDirect3DDevice9.clear(0, null, Direct3DConstants.D3DCLEAR_TARGET, 0, 1.0f, 0);
            iDirect3DDevice9.setFVF(Direct3DConstants.D3DFVF_XYZRHW | Direct3DConstants.D3DFVF_DIFFUSE);
            iDirect3DDevice9.drawPrimitiveUP(Direct3DConstants.D3DPT_TRIANGLEFAN, 4, fan1, STRUCTURE_SIZE);
            iDirect3DDevice9.drawPrimitiveUP(Direct3DConstants.D3DPT_TRIANGLEFAN, 4, fan2, STRUCTURE_SIZE);
            iDirect3DDevice9.drawPrimitiveUP(Direct3DConstants.D3DPT_TRIANGLESTRIP, 9, strip, STRUCTURE_SIZE);
            iDirect3DDevice9.endScene();
            iDirect3DDevice9.present(null, null, 0, null);
            Display.update();
            try {
                Thread.sleep(100);
            }
            catch(Exception e) {}
        }
        
        iDirect3DDevice9.release();
        iDirect3D9.release();
        Display.destroy();
    }
    
    private void createPrimitives() {
        fan1 = ByteBuffer.allocateDirect(6 * STRUCTURE_SIZE);
        fan1.order(ByteOrder.nativeOrder());
        fan1.putFloat(100.0f);
        fan1.putFloat(100.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xff000000);
        fan1.putFloat(0.0f);
        fan1.putFloat(0.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xffff0000);
        fan1.putFloat(200.0f);
        fan1.putFloat(0.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xff00ff00);
        fan1.putFloat(200.0f);
        fan1.putFloat(200.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xff0000ff);
        fan1.putFloat(0.0f);
        fan1.putFloat(200.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xffffffff);
        fan1.putFloat(0.0f);
        fan1.putFloat(0.0f);
        fan1.putFloat(1.0f);
        fan1.putFloat(1.0f);
        fan1.putInt(0xffff0000);
        fan2 = ByteBuffer.allocateDirect(6 * STRUCTURE_SIZE);
        fan2.order(ByteOrder.nativeOrder());
        fan2.putFloat(75.0f);
        fan2.putFloat(350.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xffffffff);
        fan2.putFloat(0.0f);
        fan2.putFloat(225.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xffff0000);
        fan2.putFloat(50.0f);
        fan2.putFloat(215.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xff7f7f00);
        fan2.putFloat(75.0f);
        fan2.putFloat(205.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xff00ff00);
        fan2.putFloat(125.0f);
        fan2.putFloat(215.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xff007f7f);
        fan2.putFloat(150.0f);
        fan2.putFloat(235.0f);
        fan2.putFloat(1.0f);
        fan2.putFloat(1.0f);
        fan2.putInt(0xff0000ff);
        strip = ByteBuffer.allocateDirect(11 * STRUCTURE_SIZE);
        strip.order(ByteOrder.nativeOrder());
        strip.putFloat(250.0f);
        strip.putFloat(150.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xffff0000);
        strip.putFloat(300.0f);
        strip.putFloat(50.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff00ff00);
        strip.putFloat(350.0f);
        strip.putFloat(150.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff0000ff);
        strip.putFloat(400.0f);
        strip.putFloat(50.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xffff0000);
        strip.putFloat(450.0f);
        strip.putFloat(150.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff7f7f00);
        strip.putFloat(450.0f);
        strip.putFloat(150.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff7f7f00);
        strip.putFloat(250.0f);
        strip.putFloat(350.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xffff0000);
        strip.putFloat(300.0f);
        strip.putFloat(250.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff00ff00);
        strip.putFloat(350.0f);
        strip.putFloat(350.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff0000ff);
        strip.putFloat(400.0f);
        strip.putFloat(250.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xffff0000);
        strip.putFloat(450.0f);
        strip.putFloat(350.0f);
        strip.putFloat(1.0f);
        strip.putFloat(1.0f);
        strip.putInt(0xff7f7f00);
    }
    public static void main(String args[]) {
        new DrunkenHyenaTriangles().run();
        System.exit(0);
    }
}




See more files for this project here

Lightweight Java Game Library

A Java Game Library extension: 1. Handles the graphics, sound, and input simply 2. Wraps OpenGL, OpenAL, fmod3 and DevIL 3. Hires timers LWJGL currently supports Linux, Mac OS X (10.2 and above) and Windows (98 and above).

Project homepage: http://sourceforge.net/projects/java-game-lib
Programming language(s): C,Java
License: other

  DrunkenHyenaLines.java
  DrunkenHyenaPoints.java
  DrunkenHyenaTriangles.java
  DrunkenHyenaWorldTransform.java
  IDirect3D9Test.java