I created a new thread for this topic, with better examples and screen
shots.

It is at 
http://groups.google.com/group/android-developers/browse_thread/thread/42efe5ae8acbc308

On Aug 4, 10:50 am, SChaser <crotalistig...@gmail.com> wrote:
> On Aug 3, 10:06 pm, Robert Green <rbgrn....@gmail.com> wrote:> Have you tried 
> different values of gl.glLineWidthx()?  0x1 is 1 in
> > hex, which, given in fixed converted to float = 0.00001 = super,
> > super, super tiny.  I'd start with 65536 (0xffff if you really like
> > using hex to represent FP) and see how it does.
>
> Yeah, I have since my last post. If I use a very wide line (, it does
> show up on the emulator, as a wide (not 1 px) line. On the phone, it
> still shows up as a 1px wide line. Go figure.
>
> There is something else fishy on the emulator that hints at an issue
> in the transformations - when I do make a huge line, it isn't in the
> right place. Instead of having an X in the middle of the screen (among
> other things), I have a vertical line that extends from somewhat below
> the middle of the screen to the top of the screen.
>
> Code is now:
>   public void onDrawFrame(GL10 gl) {
>     float fOrthoScale = 1;
>     int lineWidth = 0x10000;
>     _hgt2width = (float) MyApp._width / MyApp._height;
>     gl.glClearColor(0,0,.2f, 1f);
>     gl.glDisable(GL10.GL_CULL_FACE);
>     gl.glShadeModel(GL10.GL_FLAT);
>     gl.glDisable(GL10.GL_DEPTH_TEST);
>     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
> //    gl.glViewport(0, 0, MyApp._width/2, MyApp._height/2);
>     gl.glMatrixMode(GL10.GL_PROJECTION);
>     gl.glLoadIdentity();
>     GLU.gluOrtho2D(gl, -_hgt2width*fOrthoScale,
> _hgt2width*fOrthoScale, -1*fOrthoScale, 1*fOrthoScale);
>     gl.glMatrixMode(GL10.GL_MODELVIEW);
>     gl.glLoadIdentity();
> //    gl.glEnable(GL10.GL_BLEND);
>     gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
>     gl.glEnable(GL10.GL_LINE_SMOOTH);
>     gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
>
>     gl.glScalef(1, _hgt2width, 1);
> //    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
>     gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
>
>     float lscale = .002f*MyApp._curScale;
>
>     gl.glPushMatrix();
>     gl.glColor4f(1f, 1f, 0f, 1f);
>     gl.glTranslatef(.375f, .5f, 0f);
>     gl.glRotatef(30, 0, 0, 1);
>     gl.glScalef( lscale, lscale, 1f);
>     gl.glVertexPointer(2, GL10.GL_FIXED, 0, _lineVertices);
>     gl.glLineWidthx(lineWidth);
>     drawArrays(gl);
>     gl.glPopMatrix();
>
>     gl.glPushMatrix();
>     gl.glColor4f(1f, 1f, 1f, 1.0f);
>     gl.glScalef( lscale*8, lscale*8, 1f);
>     gl.glVertexPointer(2, GL10.GL_FIXED, 0, _lineVertices);
>     gl.glLineWidthx(lineWidth);
>     drawArrays(gl);
>     gl.glPopMatrix();
>
>   }
>   void drawArrays(GL10 gl) {
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 0, 5); //small square
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 5, 5); //medium square
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 10, 5);//large square
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 15, 2);//x axis
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 17, 2);//y axis
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 19, 2);//X half
>     gl.glDrawArrays(GL10.GL_LINE_STRIP, 21, 2);//X half
>   }
>
>   void makeLines() {
>     int hlf = 0x08000;
>     int one = 0x10000;
>     int sml = one/8;
>     int med = one*8;
>     int big = 0x10000000;
>     Log.d("===jrm", String.format("one:%x   big:%x", one, big));
>     int vertices[] = {
>        -sml     ,         sml,    //0 start square - scale 1/10
>         sml     ,         sml,    //1
>         sml     ,        -sml,    //2
>        -sml     ,        -sml,    //3
>        -sml     ,         sml,    //4
>
>        -one     ,         one,    //5 start square - scale 1
>         one     ,         one,    //6
>         one     ,        -one,    //7
>        -one     ,        -one,    //8
>        -one     ,         one,    //9
>
>        -med     ,         med,    //10 start square - scale 10
>         med     ,         med,    //11
>         med     ,        -med,    //12
>        -med     ,        -med,    //13
>        -med     ,         med,    //14
>
>        -big     ,           0,    //15 start coord axes over huge area
>         big     ,           0,    //16
>
>           0     ,         big,    //17
>           0     ,        -big,    //18
>
>        -big     ,        -big,    //19 start X over huge dimensions
>         big     ,         big,    //20
>
>        -big     ,         big,    //21
>         big     ,        -big,    //22
>         med     ,         one     // BUT? Without this line, blows up
> if openGL debug is enabled
>
>     };
>     this.numLines = vertices.length/2;
>
>     ByteBuffer vbb = ByteBuffer.allocateDirect(vertices.length*4);
>     vbb.order(ByteOrder.nativeOrder());
>     _lineVertices = vbb.asIntBuffer();
>     _lineVertices.put(vertices);
>     _lineVertices.position(0);
>   }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to