मैं ओपनजीएल ईएस 1.0 के साथ libgdx का उपयोग कर रहा हूं और मुझे आश्चर्य है कि स्प्राइटबैच स्टैंसिल बफर को लिख/आकर्षित कर सकता है या नहीं। मैं इसे लिखने की कोशिश कर रहा हूं और मुझे कोई परिणाम नहीं मिला है, मुझे स्टैंसिल बफर का उपयोग करने का अनुभव नहीं है, लेकिन अगर मैं कुछ भी गलत करता हूं तो मैं बहुत कुछ पढ़ रहा हूं। असल में मैं एक स्प्राइटबैच के साथ एक बनावट को स्टैंसिल बफर में खींचना चाहता हूं, इसलिए जब मैं कुछ और खींचता हूं (स्टैंसिल बफर अक्षम के साथ) यह केवल उन क्षेत्रों पर खींचा जाता है जहां स्टैंसिल बफर 1 के बराबर होता है।Libgdx करता है SpriteBatch StencilBuffer को आकर्षित करता है?
यह मेरा वांछित परिणाम: यदि मैं स्टैंसिल बफर में एक स्टार आकार के साथ बनावट खींचता हूं और फिर मैं रंग बफर में एक लाल बनावट खींचता हूं, तो मैं चाहता हूं कि लाल बनावट पिक्सल को छोड़ दें जहां स्टार स्टैंसिल बफर में है।
batch.begin();
Gdx.gl10.glEnable(GL10.GL_STENCIL_TEST);
Gdx.gl10.glEnable(GL10.GL_ALPHA_TEST);
Gdx.gl10.glStencilFunc(GL10.GL_ALWAYS, 0x1, 0xffffffff);
Gdx.gl10.glStencilOp(GL10.GL_REPLACE, GL10.GL_REPLACE, GL10.GL_REPLACE);
Gdx.gl10.glColorMask(false, false, false, false);
batch.draw(myShape, 100, 100); //draw to the stencil buffer a shape (texture region)
batch.end();
batch.begin();
Gdx.gl10.glColorMask(true, true, true, true);
Gdx.gl10.glStencilOp(GL10.GL_KEEP, GL10.GL_KEEP, GL10.GL_KEEP);
// draw where the shape has NOT been drawn
Gdx.gl10.glStencilFunc(GL10.GL_NOTEQUAL, 0x1, 0xff);
batch.draw(BackGroundLayer, 0, 0);// draw background
Gdx.gl10.glDisable(GL10.GL_STENCIL_TEST);