private void oldInit( GL gl ) { LOG.debug( "Initializing opengl context settings." ); gl.glShadeModel( GL.GL_SMOOTH ); gl.glPolygonMode( GL.GL_FRONT_AND_BACK, GL.GL_FILL ); gl.glLightModelf( GL.GL_LIGHT_MODEL_LOCAL_VIEWER, GL.GL_TRUE ); gl.glEnable( GL.GL_LIGHTING ); gl.glEnable( GL.GL_LIGHT0 ); gl.glDepthFunc( GL.GL_LEQUAL ); gl.glEnable( GL.GL_DEPTH_TEST ); // enable vertex arrays gl.glEnableClientState( GL.GL_VERTEX_ARRAY ); gl.glEnableClientState( GL.GL_NORMAL_ARRAY ); // LOG.debug( "Created shader program id: " + shaderProgramId ); createCompositingTextureShaderPrograms( gl ); }
gl.glActiveTexture( GL.GL_TEXTURE0 ); gl.glEnable( GL.GL_TEXTURE_2D ); gl.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY ); gl.glBindBufferARB( GL.GL_ARRAY_BUFFER_ARB, glVCB ); gl.glTexCoordPointer( 2, GL.GL_FLOAT, 0, 0 ); gl.glActiveTexture( textureUnitId ); gl.glEnable( GL.GL_TEXTURE_2D ); gl.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY ); gl.glBindBufferARB( GL.GL_ARRAY_BUFFER_ARB, glVCB ); gl.glTexCoordPointer( 2, GL.GL_FLOAT, 0, 0 );
@Override protected void enableArrays( RenderContext glRenderContext, DirectGeometryBuffer geomBuffer ) { super.enableArrays( glRenderContext, geomBuffer ); if ( texturePosition >= 0 && textureBuffer == null && geomBuffer != null ) { textureBuffer = geomBuffer.getTextureCoordinates( texturePosition, textureOrdinatesCount ); if ( textureBuffer == null ) { texturePosition = -1; } } if ( textureBuffer != null ) { glRenderContext.getContext().glEnable( GL.GL_TEXTURE_2D ); TexturePool.loadTexture( glRenderContext, texture ); glRenderContext.getContext().glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY ); glRenderContext.getContext().glTexCoordPointer( 2, GL.GL_FLOAT, 0, textureBuffer ); } }
@Override public void init( GLAutoDrawable d ) { d.setGL( new DebugGL( d.getGL() ) ); GL gl = d.getGL(); gl.glClearColor( 0.7f, 0.7f, 1f, 0 ); float[] lightAmbient = { 0.4f, 0.4f, 0.4f, 1.0f }; float[] lightDiffuse = { 0.8f, 0.8f, 0.8f, 1.0f }; float[] lightSpecular = { 1.0f, 1.0f, 1.0f, 1.0f }; float[] lightPosition = { 0.0f, 0.0f, 10.0f, 1.0f }; gl.glLightfv( GL.GL_LIGHT0, GL.GL_AMBIENT, lightAmbient, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_DIFFUSE, lightDiffuse, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_SPECULAR, lightSpecular, 0 ); gl.glLightfv( GL.GL_LIGHT0, GL.GL_POSITION, lightPosition, 0 ); gl.glEnable( GL.GL_DEPTH_TEST ); gl.glEnable( GL.GL_LIGHT0 ); gl.glEnable( GL.GL_LIGHTING ); gl.glEnable( GL.GL_BLEND ); // enable color and texture blending gl.glBlendFunc( GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA ); gl.glMatrixMode( GL.GL_MODELVIEW ); gl.glLoadIdentity(); gl.glEnableClientState( GL.GL_NORMAL_ARRAY ); gl.glEnableClientState( GL.GL_VERTEX_ARRAY ); }
context.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY );
gl.glEnableClientState( GL.GL_VERTEX_ARRAY ); gl.glEnableClientState( GL.GL_NORMAL_ARRAY );
@Override public void render( RenderContext glRenderContext ) { Point3d eye = glRenderContext.getViewParams().getViewFrustum().getEyePos(); GL context = glRenderContext.getContext(); context.glPushMatrix(); context.glDepthMask( false ); context.glEnable( GL.GL_TEXTURE_2D ); context.glEnableClientState( GL.GL_TEXTURE_COORD_ARRAY ); // the translation context.glTranslatef( location[0], location[1], location[2] ); // the rotation calculateAndSetRotation( context, new float[] { (float) eye.x, (float) eye.y, (float) eye.z } ); context.glScalef( width, 1, height ); TexturePool.loadTexture( glRenderContext, textureID ); // context.glMaterialfv( GL.GL_FRONT_AND_BACK, GL.GL_AMBIENT_AND_DIFFUSE, new float[] { 1, 1, 1, .1f }, 0 ); context.glVertexPointer( 3, GL.GL_FLOAT, 0, coordBuffer ); context.glTexCoordPointer( 2, GL.GL_FLOAT, 0, textureBuffer ); // context.glDisableClientState( GL.GL_NORMAL_ARRAY ); context.glDrawArrays( GL.GL_QUADS, 0, 4 ); context.glDisableClientState( GL.GL_TEXTURE_COORD_ARRAY ); context.glDisable( GL.GL_TEXTURE_2D ); context.glDepthMask( true ); context.glMatrixMode( GL.GL_MODELVIEW ); context.glPopMatrix(); }