Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (711)
Games in Android Showcase (213)
games submitted by our members
Games in WIP (785)
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 2087 times)
0 Members and 1 Guest are viewing this topic.
Offline Zhon

Junior Devvie

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).

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:

//enable stencil testing;

//set the stencil clear color -- it is zero by default
//so this line is just to be safe;

//clear the stencil buffer;

If you need something specific to GL20 or GL10 you should use

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

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

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:

If you're new to shaders, you should start from the beginning:

And here is an example of computing a mask in the shader, which means it is resolution-independent:

Offline Zhon

Junior Devvie

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.

numerical (368 views)
2017-02-21 07:32:16

numerical (369 views)
2017-02-21 07:31:46

theagentd (480 views)
2017-02-18 13:42:33

theagentd (478 views)
2017-02-18 13:35:16

h.pernpeintner (1643 views)
2017-01-24 22:39:11

h.pernpeintner (1630 views)
2017-01-24 22:38:32

Galdo (2199 views)
2017-01-12 13:44:09

Archive (2158 views)
2017-01-02 05:31:41

0AndrewShepherd0 (2698 views)
2016-12-16 03:58:39

0AndrewShepherd0 (2355 views)
2016-12-15 21:50:57
List of Learning Resources
by elect
2016-09-09 09:47:55

List of Learning Resources
by elect
2016-09-08 09:47:20

List of Learning Resources
by elect
2016-09-08 09:46:51

List of Learning Resources
by elect
2016-09-08 09:46:27

List of Learning Resources
by elect
2016-09-08 09:45:41

List of Learning Resources
by elect
2016-09-08 08:39:20

List of Learning Resources
by elect
2016-09-08 08:38:19

Rendering resources
by Roquen
2016-08-08 05:55:21 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‑
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!