Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (498)
Games in Android Showcase (117)
games submitted by our members
Games in WIP (563)
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  
  libgdx, Android crash when using Stencil?  (Read 914 times)
0 Members and 1 Guest are viewing this topic.
Offline Zhon

Junior Member


Medals: 4



« Posted 2013-05-20 14:11:58 »

On desktop it works fine, but when in android: "Unfortunately gamename-android has stopped" as soon as the app launches.
I've done some line commenting, and reached the conclusion that these lines are making the game crash (create() method).
1  
2  
      Gdx.gl11.glEnable(Gdx.gl11.GL_STENCIL_TEST);
      Gdx.gl11.glClearStencil(0);

If I comment them, the rest of the code won't work because it needs them.
I don't think posting the rest of the code is relevant since these 2 lines are making the game crash as soon as they're reached..

Does this mean most android devices have no support for this or something like that?
Why does libgdx's ScissorStack works fine? Isn't it using something like that?
I would use libgdx's ScissorStack, but it works only with rectangles.

Any light is appreciated  Smiley
Offline davedes
« Reply #1 - Posted 2013-05-20 15:11:25 »

What does LogCat say?

There are two likely scenarios:

1. The gl11 object is null and you are getting a null pointer exception. If useGL20 is enabled, then gl10 and gl11 will be null. So the proper code is to do this:

1  
2  
3  
4  
5  
6  
7  
8  
9  
//enable stencil testing
Gdx.gl.glEnable(GL10.GL_STENCIL_TEST);

//set the stencil clear color -- it is zero by default
//so this line is just to be safe
Gdx.gl.glClearStencil(0);

//clear the stencil buffer
Gdx.gl.glClear(GL10.GL_STENCIL_BUFFER_BIT);



If you need something specific to GL20 or GL10 you should use
Gdx.graphics.isGL20Available()


2. You didn't enable the stencil buffer during your application initialization:

Android:
1  
2  
3  
AndroidApplicationConfiguration Configuration = new  AndroidApplicationConfiguration();
Configuration.stencil = 8;  //stencil buffer size
initialize(new Game(), Configuration);   //pass it as parameter  


Desktop:
1  
2  
3  
LwjglApplicationConfiguration Configuration = new  LwjglApplicationConfiguration();
Configuration.stencil = 8;
new LwjglApplication(new Game(), Configuration);



Regarding your problem. Scissor stack does not use the stencil buffer. What kind of masking do you need? Arbitrary shapes? You can always use images and mask via a shader; this allows for anti-aliasing (unlike stencil testing).

Here is an example of using a shader to mask arbitrary shapes, with a mask texture:
https://github.com/mattdesl/lwjgl-basics/wiki/ShaderLesson4

If you're new to shaders, you should start from the beginning:
https://github.com/mattdesl/lwjgl-basics/wiki/Shaders

And here is an example of computing a mask in the shader, which means it is resolution-independent:
http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=8540&p=38862&hilit=rotated+rectangle+mask#p38862

Offline Zhon

Junior Member


Medals: 4



« Reply #2 - Posted 2013-05-20 16:59:25 »

Thanks for your helpful answer, I changed from gl11 to gl and it worked like a charm, such a simple thing, I'd never guess it, thanks again.
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.

Grunnt (16 views)
2014-09-23 14:38:19

radar3301 (14 views)
2014-09-21 23:33:17

BurntPizza (31 views)
2014-09-21 02:42:18

BurntPizza (22 views)
2014-09-21 01:30:30

moogie (20 views)
2014-09-21 00:26:15

UprightPath (29 views)
2014-09-20 20:14:06

BurntPizza (33 views)
2014-09-19 03:14:18

Dwinin (48 views)
2014-09-12 09:08:26

Norakomi (75 views)
2014-09-10 13:57:51

TehJavaDev (105 views)
2014-09-10 06:39:09
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
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!