LWJGL Forum

Please login or register.

Login with username, password and session length
Pages: 1 ... 8 9 [10]
 91 
 on: September 29, 2017, 18:28:30 
Started by GiantNuker - Last post by GiantNuker
My lines for my checkbox check vary with position, Here is one at (50, 70)

And here is one at (10, 70)


My Code:

CheckBox render method:
Lines 11 & 12 have check drawing code.
Code: [Select]
@Override
public void render() {
GLDrawHelper.color(borderColor);
GLDrawHelper.drawRect(area);
ScreenRect2D area2 = area.subtract(2);
GLDrawHelper.color(color);
GLDrawHelper.drawRect(area2);
if (pressed) {
ScreenRect2D area3 = area2.subtract(2);
GLDrawHelper.color(pressedColor); //from here
GLDrawHelper.drawLine(area3.getUpperRight(), area3.getLowerLeft().add(area3.getLowerLeft().x / 2, 0));
GLDrawHelper.drawLine(area3.getLowerLeft().add(area3.getLowerLeft().x / 2, 0), area3.getUpperLeft().subtract(0, (area3.getLowerLeft().y / 4) - area3.getUpperLeft().y / 2));//to here
}
GLDrawHelper.color(Color.BLACK);
GLDrawHelper.drawString(text, area.getLowerLeft().subtract(0, area.getHeight() / 2).subtract(-15, GLDrawHelper.getHeight(text, scale) * 2), scale);
}
GLDrawHelper drawLine
Code: [Select]
public static void drawLine(ScreenPos2D pos1, ScreenPos2D pos2) {
GL11.glBegin(GL11.GL_LINES);
GL11.glVertex2d(pos1.x, pos1.y);
GL11.glVertex2d(pos2.x, pos2.y);
GL11.glEnd();
}
ScreenRect2D(area)
Code: [Select]
public class ScreenRect2D {
public ScreenPos2D min, max;
public ScreenRect2D(ScreenPos2D min, ScreenPos2D max) {
this.min = min;
this.max = max;
}
public ScreenRect2D(double minX, double minY, double maxX, double maxY) {
this(new ScreenPos2D(minX, minY), new ScreenPos2D(maxX, maxY));
}
public boolean isInRect(double x, double y) {
return (x >= min.x) && (x <= max.x) && (y >= min.y) && (y <= max.y);
}
public ScreenPos2D getUpperLeft() {
return min;
}
public ScreenPos2D getUpperRight() {
return new ScreenPos2D(max.x, min.y);
}
public ScreenPos2D getLowerLeft() {
return new ScreenPos2D(min.x, max.y);
}
public ScreenPos2D getLowerRight() {
return max;
}
public double getHeight() {
return max.y - min.y;
}
public double getWidth() {
return max.x - min.x;
}
public ScreenRect2D add(double amount) {
return new ScreenRect2D(min.subtract(amount, amount), max.add(amount, amount));
}
public ScreenRect2D subtract(double amount) {
return add(-amount);
}
}
ScreenPos2D(min & max)
Code: [Select]
public class ScreenPos2D {
public double x, y;
public ScreenPos2D(double minX, double minY) {
this.x = minX;
this.y = minY;
}
public ScreenPos2D add(double x, double y) {
return new ScreenPos2D(this.x + x, this.y + y);
}
public ScreenPos2D add(ScreenPos2D pos) {
return add(pos.x, pos.y);
}
public ScreenPos2D subtract(ScreenPos2D pos) {
return add(-pos.x, -pos.y);
}
public ScreenPos2D subtract(double x, double y) {
return add(-x, -y);
}
}

 92 
 on: September 29, 2017, 17:35:04 
Started by GiantNuker - Last post by GiantNuker
I am having trouble rendering text, what is wrong with my method? ??? ??? ???

Everything, except the first two lines maybe. :)

See the EasyFont demo in the lwjgl3 repository for a working example.

New Problem: Now parts of text don't show, and are in weird positions.Problem is, based on where it is set to render, it renders in a position that is a multiple(I think), but ONLY when scale is more than 1.0 and the position is more than (0, 0), the offset increases more the farther out you go.

Code: [Select]
public static void drawString(String text, ScreenPos2D pos, double scale) {
ByteBuffer charBuffer = BufferUtils.createByteBuffer(text.length() * 270);

        int quads = stb_easy_font_print((float)pos.x, (float)pos.y, text, null, charBuffer);

        glEnableClientState(GL_VERTEX_ARRAY);
        glVertexPointer(2, GL_FLOAT, 16, charBuffer);

        //glClearColor(43f / 255f, 43f / 255f, 43f / 255f, 0f); // BG color
        //glColor3f(169f / 255f, 183f / 255f, 198f / 255f); // Text color

        //glfwPollEvents();

        //glClear(GL_COLOR_BUFFER_BIT);

        glPushMatrix();
        // Zoom
        glScaled(scale, scale, 1f);
        // Scroll
        glTranslatef(4.0f, 4.0f - 0/*getLineOffset()*/ * STBEasyFont.stb_easy_font_height(text), 0f);

        glDrawArrays(GL_QUADS, 0, quads * 4);

        glPopMatrix();

glDisableClientState(GL_VERTEX_ARRAY);
}

 93 
 on: September 29, 2017, 17:06:51 
Started by matan45 - Last post by matan45
there is any way to play mp4 video file in glfw window?
any example anything?

 94 
 on: September 29, 2017, 15:02:12 
Started by sterfpaul - Last post by sterfpaul
As a workaround I extracted the dlls and added them as a library. But i would still like to know why the 'normal' route didn't work.

 95 
 on: September 29, 2017, 15:00:21 
Started by sterfpaul - Last post by sterfpaul
I found that using Library.class.getResource("lwjgl.dll") returns null, while Library.class.getClassLoader().getResource("lwjgl.dll") does return the dll Resource.
This seems to be why the SharedLibraryLoader is not started.

 96 
 on: September 29, 2017, 14:58:09 
Started by sterfpaul - Last post by sterfpaul
Runing the example code from https://www.lwjgl.org/guide. Doesn't seem to work for me in Intellij.

I copied the dependencies from https://www.lwjgl.org/customize.

When i run my main class i get the following exception:

Quote
[LWJGL] Failed to load a library. Possible solutions:
   a) Add the directory that contains the shared library to -Djava.library.path or -Dorg.lwjgl.librarypath.
   b) Add the JAR that contains the shared library to the classpath.
[LWJGL] Enable debug mode with -Dorg.lwjgl.util.Debug=true for better diagnostics.
[LWJGL] Enable the SharedLibraryLoader debug mode with -Dorg.lwjgl.util.DebugLoader=true for better diagnostics.
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to locate library: lwjgl.dll
   at org.lwjgl@3.1.3/org.lwjgl.system.Library.loadSystem(Library.java:146)
   at org.lwjgl@3.1.3/org.lwjgl.system.Library.loadSystem(Library.java:66)
   at org.lwjgl@3.1.3/org.lwjgl.system.Library.<clinit>(Library.java:49)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryUtil.<clinit>(MemoryUtil.java:60)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryStack.<init>(MemoryStack.java:60)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryStack.create(MemoryStack.java:79)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryStack.create(MemoryStack.java:70)
   at java.base/java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:284)
   at java.base/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
   at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:170)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryStack.stackGet(MemoryStack.java:605)
   at org.lwjgl@3.1.3/org.lwjgl.system.MemoryStack.stackPush(MemoryStack.java:614)
   at org.lwjgl@3.1.3/org.lwjgl.system.Callback.<clinit>(Callback.java:38)

So it seems like the classpath is not setup correctly.

Intellij start the program with the following command:

Quote
"D:\Program Files\Java\jdk-9\bin\java" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2017.1.1\lib\idea_rt.jar=54444:D:\Program Files\JetBrains\IntelliJ IDEA 2017.1.1\bin" -Dfile.encoding=UTF-8 -p D:\Projects\civcraft\civcraft-opengl\target\classes;<my maven repo>\repository\org\lwjgl\lwjgl-opengl\3.1.3\lwjgl-opengl-3.1.3.jar;<my maven repo>\repository\org\lwjgl\lwjgl\3.1.3\lwjgl-3.1.3.jar;<my maven repo>\repository\org\lwjgl\lwjgl-glfw\3.1.3\lwjgl-glfw-3.1.3.jar;<my maven repo>\repository\org\lwjgl\lwjgl\3.1.3\lwjgl-3.1.3-natives-windows.jar;<my maven repo>\repository\org\lwjgl\lwjgl-opengl\3.1.3\lwjgl-opengl-3.1.3-natives-windows.jar;<my maven repo>\repository\org\lwjgl\lwjgl-glfw\3.1.3\lwjgl-glfw-3.1.3-natives-windows.jar;<my maven repo>\repository\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;<my maven repo>\repository\org\apache\logging\log4j\log4j-core\2.4.1\log4j-core-2.4.1.jar;<my maven repo>\repository\org\apache\logging\log4j\log4j-api\2.4.1\log4j-api-2.4.1.jar;<my maven repo>\repository\com\google\inject\guice\4.1.0\guice-4.1.0.jar;<my maven repo>\repository\javax\inject\javax.inject\1\javax.inject-1.jar;<my maven repo>\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;<my maven repo>\repository\com\google\guava\guava\19.0\guava-19.0.jar;<my maven repo>\repository\com\google\inject\extensions\guice-assistedinject\4.1.0\guice-assistedinject-4.1.0.jar;<my maven repo>\repository\com\google\inject\extensions\guice-multibindings\4.1.0\guice-multibindings-4.1.0.jar -m nl.civcraft.opengl/nl.civcraft.opengl.CivcraftOpenGl

This seems to put the native jars on the classpath.

I'm using Intellij Ultimate 2017.2.5 and JDK-9 on windows.

Does anyone know what i'm doing wrong?

 97 
 on: September 29, 2017, 13:28:01 
Started by N-o-N-o - Last post by spasi
Try calling GLUtil.setupDebugMessageCallback(); after GL.createCapabilities(); to make sure the code isn't raising any OpenGL errors.

I would also try a simpler texture (uncompressed, no mipmaps) to make sure the shader doesn't have any issues.

 98 
 on: September 29, 2017, 13:20:47 
Started by GiantNuker - Last post by spasi
I am having trouble rendering text, what is wrong with my method? ??? ??? ???

Everything, except the first two lines maybe. :)

See the EasyFont demo in the lwjgl3 repository for a working example.

 99 
 on: September 29, 2017, 08:51:22 
Started by N-o-N-o - Last post by N-o-N-o
Greetings,

I've been trying to implement this openGL tutorial with LWJGL
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/
HoweverI can't seem to obtain anything but a black cube...

Note that I've been trying to get back into java too (which I haven't used since 2011), so the code is probably, uh. Less than optimal.

Here is my code, with long lists of points coordinate, colors, and function removed for clarity. Lemme know if I need to need to add anything.

Code: [Select]
    private void initOpenGl() {
        glfwMakeContextCurrent(window);
        // Create OpenGl capabilities
        GL.createCapabilities();
        // Set the clear color
        glClearColor(0.0f, 0.0f, 0.4f, 0.0f);
        // Enable depth test
        glEnable(GL_DEPTH_TEST);
        // Accept fragment if it closer to the camera than the former one
        glDepthFunc(GL_LESS);
        glfwSwapBuffers(window);

    }

    private synchronized void graphicLoop() {
       (...)

        try (MemoryStack stack = stackPush()) {

            /**** Vertex buffer : our triangle ****/
            // Triangle coordinates for a cube
            //FloatBuffer triangleBuffer = stack.callocFloat(triangle.length);
            FloatBuffer triangleBuffer = stack.callocFloat(cubeTriangles.length);
            triangleBuffer.put(cubeTriangles);
            triangleBuffer.flip();

            /**** Color data ****/
            FloatBuffer colorBuffer = stack.callocFloat(colorData.length);
            colorBuffer.put(colorData);
            colorBuffer.flip();

            /**** Buffer objects. One for vertexes, one for colors ****/
            int vertexVbo, colorVbo, UV_vbo;
            IntBuffer vertexBuffer = stack.callocInt(1);
            glGenBuffers(vertexBuffer);
            vertexVbo = vertexBuffer.get(0);
            glBindBuffer(GL_ARRAY_BUFFER, vertexVbo);
            glBufferData(GL_ARRAY_BUFFER, triangleBuffer, GL_STATIC_DRAW);

            IntBuffer vertex2Buffer = stack.callocInt(1);
            glGenBuffers(vertex2Buffer);
            colorVbo = vertex2Buffer.get(0);
            glBindBuffer(GL_ARRAY_BUFFER, colorVbo);
            glBufferData(GL_ARRAY_BUFFER, colorBuffer, GL_STATIC_DRAW);

            IntBuffer UV_Buffer = stack.callocInt(1);
            glGenBuffers(UV_Buffer);
            UV_vbo = UV_Buffer.get(0);
            glBindBuffer(GL_ARRAY_BUFFER, UV_vbo);
            glBufferData(GL_ARRAY_BUFFER, colorBuffer, GL_STATIC_DRAW);

           
            int vbaName;
            IntBuffer vbaBuffer = stack.callocInt(1);
            vbaBuffer.put(glGenVertexArrays());
            vbaName = vbaBuffer.get(0);
            glBindVertexArray(vbaName);
           
            /**** Program ****/
            IntBuffer shaderBuffer = stack.callocInt(4);
            /*int vertexShader;
            shaderBuffer.put(0, glCreateShader(GL_VERTEX_SHADER));
            vertexShader = shaderBuffer.get(0);
            glShaderSource(vertexShader,readGLSLfile("vertex.glsl"));
            glCompileShader(vertexShader);*/


            int viewShader;
            shaderBuffer.put(2, glCreateShader(GL_VERTEX_SHADER));
            viewShader = shaderBuffer.get(2);
            glShaderSource(viewShader, readGLSLfile("mvpVertex.glsl"));

            int colorShader;
            shaderBuffer.put(1,glCreateShader(GL_FRAGMENT_SHADER));
            colorShader = shaderBuffer.get(1);
            glShaderSource(colorShader, readGLSLfile("color.glsl"));

            //Build glsl program
            int pID;
            shaderBuffer.put(3, glCreateProgram());
            pID = shaderBuffer.get(3);
            //glAttachShader(pID, vertexShader);
            glAttachShader(pID, viewShader);
            glAttachShader(pID, colorShader);
            glLinkProgram(pID);

            // Check for errors
            int status = glGetProgrami(pID, GL_LINK_STATUS);
            if (status == 0) {
                int infoLogLength = glGetProgrami(pID, GL_INFO_LOG_LENGTH);

                String strInfoLog = null;
                strInfoLog = glGetProgramInfoLog(pID, infoLogLength);

                System.err.printf("Linker failure: %s\n", strInfoLog);
            }

            Matrix4f mvp = new Matrix4f()
                    .perspective((float) Math.toRadians(90.0), 1.0f, 0.1f, 100.0f)
                    .lookAt(4.0f, 3.0f, 3.0f,
                            0.0f, 0.0f, 0.0f,
                            0.0f, 1.0f, 0.0f);
            FloatBuffer mvp_buffer = stack.callocFloat(16);
            mvp.get(mvp_buffer);

            IntBuffer intBuffer = stack.callocInt(1);
            intBuffer.put(glGetUniformLocation(pID, "MVP"));
            int mvpLocation = intBuffer.get(0);

            /**** Compressed texture ****/
            CompressedTexture texture = new CompressedTexture("uvtemplate.DDS");
            int textureGLSL_ID  = glGetUniformLocation(pID, "myTextureSampler");

            while (!myControlHandler.getWindowShouldClose()) {
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

                glUseProgram(pID);

                glUniformMatrix4fv(mvpLocation, false, mvp_buffer);

                // Bind our texture in Texture Unit 0
                glActiveTexture(GL_TEXTURE0);
                glBindTexture(GL_TEXTURE_2D, texture.getTextureID());
                // Set our "myTextureSampler" sampler to use Texture Unit 0
                glUniform1i(textureGLSL_ID, 0);

                glEnableVertexAttribArray(0);
                glBindBuffer(GL_ARRAY_BUFFER, vertexVbo);
                glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0);
                glEnableVertexAttribArray(1);
                glBindBuffer(GL_ARRAY_BUFFER, colorVbo);
                glVertexAttribPointer(1, 3, GL_FLOAT, false, 0, 0);

                glEnableVertexAttribArray(2);
                glBindBuffer(GL_ARRAY_BUFFER, UV_vbo);

                glVertexAttribPointer(2, 2, GL_FLOAT, false, 0, 0);
                glDrawArrays(GL_TRIANGLES, 0, 3*12);
                glDisableVertexAttribArray(0);
                glDisableVertexAttribArray(1);
                glDisableVertexAttribArray(2);
                glfwSwapBuffers(window);
            }
        }
    }
Code: [Select]
public class CompressedTexture {

    private int textureID;
    private int height;
    private int width;
    private int linearSize;
    private int mipMapCount;
    private int fourCC;
    private int components;
    private int format;
    private int dataLength;
    private ByteBuffer textureData;

    public CompressedTexture(String fileName) {
        parseFile(fileName);
        textureID = glGenTextures();
        // "Bind" the newly created texture : all future texture functions will modify this texture
        glBindTexture(GL_TEXTURE_2D, textureID);
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        loadMipmaps();
    }

    public void parseFile(String fileName) {
        fileName = "res/" + fileName;
        try (FileInputStream reader = new FileInputStream (fileName)) {
            byte[] header = new byte[4];
            reader.read(header);
            if (new String (header).compareTo(new String("DDS ")) != 0)
                throw new IOException("Not a DDS file");
            readHeader(reader);
            readData(reader);
        } catch (IOException x) {
            System.err.println(x);
        }
        components  = (fourCC == 0x31545844) ? 3 : 4;
        switch (fourCC) {
            case 0x30315844://DX10
                format = GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT;
                break;
            case 0x31545844://DXT1
                format = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
                break;
            case 0x33545844://DXT3
                format = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
                break;
            case 0x35545844://DXT5
                format = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT;
                break;
            default:
                format = -1;
                try {
                    throw  new Exception("Unknown compressed texture type\n     ");
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;
        }
    }

    private void readHeader(FileInputStream reader) throws IOException {
        /******* Reading header *******/
        byte[] header = new byte[4];
        reader.skip(8);
        reader.read(header);
        height = ByteBuffer.wrap(header).order(ByteOrder.LITTLE_ENDIAN).getInt();
        reader.read(header);
        width = ByteBuffer.wrap(header).order(ByteOrder.LITTLE_ENDIAN).getInt();
        reader.read(header);
        linearSize = ByteBuffer.wrap(header).order(ByteOrder.LITTLE_ENDIAN).getInt();
        reader.skip(4);
        reader.read(header);
        mipMapCount = ByteBuffer.wrap(header).order(ByteOrder.LITTLE_ENDIAN).getInt();
        reader.skip(52);
        reader.read(header);
        fourCC = ByteBuffer.wrap(header).order(ByteOrder.LITTLE_ENDIAN).getInt();
        System.out.println("Height : " + height);
        System.out.println("width : " + width);
        System.out.println("linearSize : " + linearSize);
        System.out.println("mipMapCount : " + mipMapCount);
        System.out.printf("fourCC : %x\n", fourCC);
    }

    private void readData(FileInputStream reader) throws IOException {
        /******* Reading data *******/
        int buffSize = mipMapCount > 1 ? linearSize * 2 : linearSize;
        //MemoryUtil.MemoryAllocator memAlloc = MemoryUtil.getAllocator();
        //this.textureData = MemoryUtil.memCalloc(buffSize);
        this.textureData = ByteBuffer.allocate(buffSize);
        this.dataLength = reader.read(textureData.array(), 0, buffSize);
        textureData.flip();

    }

    private void loadMipmaps() {
        int blockSize = (format==GL_COMPRESSED_RGBA_S3TC_DXT1_EXT) ? 8 : 16;
        int loopWidth = this.width;
        int loopHeight = this.height;
        ByteBuffer data = BufferUtils.createByteBuffer(dataLength);
        data.put(textureData);
        data.rewind();
        for(int level = 0; level < mipMapCount; ++level) {
            int size = ((loopWidth+3)/4)*((loopHeight+3)/4)*blockSize;
            ByteBuffer mipMapData = BufferUtils.createByteBuffer(size);
            byte[] mipMapByte = new byte[size];
            data.get(mipMapByte);
            mipMapData.put(mipMapByte);
            mipMapData.rewind();
            glCompressedTexImage2D(GL_TEXTURE_2D,
                    level,
                    format,
                    loopWidth,
                    loopHeight,
                    0,
                    mipMapData);
            loopWidth  /= 2;
            loopHeight /= 2;
        }
    }

I hope I'm not breaking any rules with first post.

Any help would be greatly appreciated.

EDIT :

Ah. I suppose I should add GLSL files !

Code: [Select]
#version 330 core

// Interpolated values from the vertex shaders
in vec3 fragmentColor;
// Interpolated values from the vertex shaders
in vec2 UV;

// Ouput data
out vec3 color;

// Values that stay constant for the whole mesh.
uniform sampler2D myTextureSampler;

void main(){

// Output color = color specified in the vertex shader,
// interpolated between all 3 surrounding vertices
// color = fragmentColor;
    color = texture( myTextureSampler, UV ).rgb;
//    color = vec3(1, UV );//colors the cube : UV values are set
}
Code: [Select]
#version 330 core

//in vec3 vertexPosition_modelspace;
layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec3 vertexColor;
layout(location = 2) in vec2 vertexUV;

// Output data ; will be interpolated for each fragment.
out vec2 UV;
out vec3 fragmentColor;

// Values that stay constant for the whole mesh.
uniform mat4 MVP;

void main(){
    // Output position of the vertex, in clip space : MVP * position
    gl_Position =  MVP * vec4(vertexPosition_modelspace,1);

    // Color / UV
    fragmentColor = vertexColor;
    UV = vertexUV;
}

I've been editing the code for some time now, and i'm honestly at a loss...

 100 
 on: September 28, 2017, 23:50:17 
Started by GiantNuker - Last post by GiantNuker
EDIT: forget the rest of of this post Issue is herehttp://forum.lwjgl.org/index.php?topic=6610.msg34982#msg34982(or scroll down to my next post)

I am having trouble rendering text, what is wrong with my method? ??? ??? ???


public static void drawString(String text) {
      ByteBuffer charBuffer = BufferUtils.createByteBuffer(text.length() * 270);
      int d = STBEasyFont.stb_easy_font_print(10, 10, text, null, charBuffer);
      GL11.glBindTexture(GL11.GL_TEXTURE_2D, 7);
      FloatBuffer b = charBuffer.asFloatBuffer();
      float[] f = new float[text.length() * 270];
      int i = 0;
      while (b.hasRemaining()) {
         f = b.get();
         i++;
      }
      int four = 0;
      for(int z = 0; z < f.length; z+= 16){
         if (f[z] == 0) break;
         if (four == 0)GL11.glBegin(GL11.GL_QUADS);
         float[] xb = new float[4], yb = new float[4];
         //for (i = 0; i < 4; i++) {
            float x = 0, y = 0;
            for (int j = 0; j < 2; j++) {
               if (j == 0) x = f[z + j];
               else if (j == 1) y = f[z + j];
               
            }
         //}
         GL11.glVertex2d(x, y);
         four++;
         if (four == 4) {
            four = 0;
            GL11.glEnd();
         }
      }
   }

Any help would be GREATLY APPRECIATED ;D

Pages: 1 ... 8 9 [10]