private void setTextureData() { // x = left, y = top, z = right, w = bottom final FloatBuffer coords = _meshData.getTextureBuffer(0); coords.rewind(); coords.put(0).put(0); coords.put(_textureBorderOffsets.getXf()).put(0); coords.put(1f - _textureBorderOffsets.getZf()).put(0); coords.put(1).put(0); coords.put(0).put(_textureBorderOffsets.getWf()); coords.put(_textureBorderOffsets.getXf()).put(_textureBorderOffsets.getWf()); coords.put(1f - _textureBorderOffsets.getZf()).put(_textureBorderOffsets.getWf()); coords.put(1).put(_textureBorderOffsets.getWf()); coords.put(0).put(1f - _textureBorderOffsets.getYf()); coords.put(_textureBorderOffsets.getXf()).put(1f - _textureBorderOffsets.getYf()); coords.put(1f - _textureBorderOffsets.getZf()).put(1f - _textureBorderOffsets.getYf()); coords.put(1).put(1f - _textureBorderOffsets.getYf()); coords.put(0).put(1); coords.put(_textureBorderOffsets.getXf()).put(1); coords.put(1f - _textureBorderOffsets.getZf()).put(1); coords.put(1).put(1); _meshData.markBufferDirty(MeshData.KEY_TextureCoords0); }
xs += _contentPadding.getZf(); y -= _contentPadding.getWf(); final Image img = _texture.getImage(); leftB = img.getWidth() * _textureBorderOffsets.getXf() * _borderScale; rightB = img.getWidth() * _textureBorderOffsets.getZf() * _borderScale; topB = img.getHeight() * _textureBorderOffsets.getYf() * _borderScale; bottomB = img.getHeight() * _textureBorderOffsets.getWf() * _borderScale;
private static void setPosition(final int index, final LightStateRecord record, final float positionX, final float positionY, final float positionZ, final float positionW, final LightRecord lr) { // From OpenGL Docs: // The light position is transformed by the contents of the current top // of the ModelView matrix stack when you specify the light position // with a call to glLightfv(GL_LIGHT_POSITION,...). If you later change // the ModelView matrix, such as when the view changes for the next // frame, the light position isn't automatically retransformed by the // new contents of the ModelView matrix. If you want to update the // light's position, you must again specify the light position with a // call to glLightfv(GL_LIGHT_POSITION,...). // XXX: This is a hack until we get a better lighting model up final ReadOnlyMatrix4 modelViewMatrix = Camera.getCurrentCamera().getModelViewMatrix(); if (!record.isValid() || lr.position.getXf() != positionX || lr.position.getYf() != positionY || lr.position.getZf() != positionZ || lr.position.getWf() != positionW || !lr.modelViewMatrix.equals(modelViewMatrix)) { record.lightBuffer.clear(); record.lightBuffer.put(positionX); record.lightBuffer.put(positionY); record.lightBuffer.put(positionZ); record.lightBuffer.put(positionW); record.lightBuffer.flip(); GL11.glLight(GL11.GL_LIGHT0 + index, GL11.GL_POSITION, record.lightBuffer); lr.position.set(positionX, positionY, positionZ, positionW); if (!Camera.getCurrentCamera().isFrameDirty()) { lr.modelViewMatrix.set(modelViewMatrix); } } }
private static void setPosition(final int index, final LightStateRecord record, final float positionX, final float positionY, final float positionZ, final float positionW, final LightRecord lr) { final GL gl = GLContext.getCurrentGL(); // From OpenGL Docs: // The light position is transformed by the contents of the current top // of the ModelView matrix stack when you specify the light position // with a call to glLightfv(GL_LIGHT_POSITION,...). If you later change // the ModelView matrix, such as when the view changes for the next // frame, the light position isn't automatically retransformed by the // new contents of the ModelView matrix. If you want to update the // light's position, you must again specify the light position with a // call to glLightfv(GL_LIGHT_POSITION,...). // XXX: This is a hack until we get a better lighting model up final ReadOnlyMatrix4 modelViewMatrix = Camera.getCurrentCamera().getModelViewMatrix(); if (!record.isValid() || lr.position.getXf() != positionX || lr.position.getYf() != positionY || lr.position.getZf() != positionZ || lr.position.getWf() != positionW || !lr.modelViewMatrix.equals(modelViewMatrix)) { record.lightBuffer.clear(); record.lightBuffer.put(positionX); record.lightBuffer.put(positionY); record.lightBuffer.put(positionZ); record.lightBuffer.put(positionW); record.lightBuffer.flip(); gl.getGL2().glLightfv(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_POSITION, record.lightBuffer); lr.position.set(positionX, positionY, positionZ, positionW); if (!Camera.getCurrentCamera().isFrameDirty()) { lr.modelViewMatrix.set(modelViewMatrix); } } }
if (value instanceof Vector4) { final Vector4 vec = (Vector4) value; return stack.mallocFloat(4).put(vec.getXf()).put(vec.getYf()).put(vec.getZf()).put(vec.getWf()) .flip();
vertBufArray[index++] = pointFinal.getZf();
vertBufArray[index++] = pointFinal.getZf();
assertTrue(vec1.getXf() == (float) Math.PI); assertTrue(vec1.getYf() == (float) Math.PI); assertTrue(vec1.getZf() == (float) Math.PI); assertTrue(vec1.getWf() == (float) Math.PI);