Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (475)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (530)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  [SOLVED] Problem with OpenGL via LWJGL  (Read 894 times)
0 Members and 1 Guest are viewing this topic.
Offline paulo.carabuena

Senior Newbie





« Posted 2011-12-06 20:34:19 »

hi guys.. first and foremost.. this is my first post, idk if this is the right section.. but here it goes..

i'm working on a project.. it's a game programming library, focusing on portability in the java environment.. i am currently working on the display function.. as a system dependency, J2SE can use OpenGL for its graphics functionalities such as display or for rendering, etc..

i'm not doing things from scratch, my adviser (now on temporary leave) told me to look for some open source libraries in the Internet to lighten my load.. I found LWJGL which provides classes and interface for OpenGL.. so i use it for the J2SE OpenGL module of my library..

the program i've written so far works perfectly for basic polygon rendering in both OpenGL and native hardware accelerated graphics.. however, when I proceed to image rendering there seems to be some problem..



the image above shows the output after i run the OpenGL rendering program..

here is the code for initializing LWJGL

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
38  
39  
private void initGL() {
      GL11.glEnable(GL11.GL_TEXTURE_2D);
      GL11.glDisable(GL11.GL_DEPTH_TEST);
 
      GL11.glMatrixMode(GL11.GL_PROJECTION);
      GL11.glLoadIdentity();
 
      GL11.glOrtho(0, this.size.width, this.size.height, 0, -1, 1);
 
      GL11.glEnable(GL11.GL_BLEND);
      GL11.glClearColor(0, 0, 0, 0);
 
      GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
   }
 
   private void initGraphics() {
      try {
         DisplayMode best = (this.isFullscreen) ?
               this.getBestDisplayMode(size) : new DisplayMode(
                     this.size.width, this.size.height);
 
         if(best == null) {
            throw new Exception();
         }
 
         org.lwjgl.opengl.Display.setDisplayMode(best);
      } catch(Exception e) {
 
      }
 
      try {
         org.lwjgl.opengl.Display.setTitle(this.title);
         org.lwjgl.opengl.Display.setFullscreen(this.isFullscreen);
         org.lwjgl.opengl.Display.setVSyncEnabled(this.usingVsync);
         org.lwjgl.opengl.Display.create();
      } catch(Exception e) {
 
      }
   }


and here is the code for rendering the image:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
public boolean drawImage(Image img,
                      int x, int y, int width, int height,
                      ImageObserver observer) {
      startPainting();
 
 
      GL11.glPushMatrix();
 
       Texture texture = textureLoader.getTexture((BufferedImage) img);
      texture.bind();
 
      GL11.glTranslatef(x, y, 0);
 
      GL11.glBegin(GL11.GL_QUADS);
         GL11.glTexCoord2f(0, 0);
         GL11.glVertex2f(0, 0);
 
         GL11.glTexCoord2f(0, texture.getHeight());
         GL11.glVertex2f(0, height);
 
         GL11.glTexCoord2f(texture.getWidth(), texture.getHeight());
         GL11.glVertex2f(width, height);
 
         GL11.glTexCoord2f(texture.getWidth(), 0);
         GL11.glVertex2f(width, 0);
      GL11.glEnd();
 
      GL11.glPopMatrix();
 
 
      endPainting();
 
       return true;
    }


oh btw here is how i called the rendering routine:

1  
2  
3  
4  
5  
public void render(Graphics g) {
      g.setColor(Color.RED);
      g.fillRect(0, 0, 640, 480);
      image.render(g, 0, 0);
   }


any help to make the OpenGL rendered image look exactly like the image below? thanks in advance Smiley

Online theagentd
« Reply #1 - Posted 2011-12-06 20:39:42 »

You're drawing a red quad for the background before calling drawImage, right? Your call to glColor is still in effect. Add this in your drawImage() function (just after GL11.glTranslatef(x, y, 0); is fine):
1  
GL11.glColor3f(1, 1, 1);

When with drawing textures, the texture sample is multiplied by the OpenGL color you've specified.

Myomyomyo.
Offline paulo.carabuena

Senior Newbie





« Reply #2 - Posted 2011-12-06 20:48:12 »

it's just as you said, i was thinking of the same about the color but idk what to do, i thought i need GL.glFlush(), silly me  Roll Eyes .. but anyway, it works now  Grin thanks alot  Smiley
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

ctomni231 (33 views)
2014-07-18 06:55:21

Zero Volt (29 views)
2014-07-17 23:47:54

danieldean (24 views)
2014-07-17 23:41:23

MustardPeter (26 views)
2014-07-16 23:30:00

Cero (41 views)
2014-07-16 00:42:17

Riven (43 views)
2014-07-14 18:02:53

OpenGLShaders (31 views)
2014-07-14 16:23:47

Riven (30 views)
2014-07-14 11:51:35

quew8 (29 views)
2014-07-13 13:57:52

SHC (65 views)
2014-07-12 17:50:04
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!