I am trying to implement a minimal example of using a shader within J.

This means: no vertex shader. I just want to paint the screen a solid color.

This means: no #version header (which I believe is equivalent to #version 110).

Unfortunately, while this should work in principle, a number of
variations on the implementation have not worked for me.

I can show that opengl is working, using the glClear mechanism, but
while that accomplishes the "set the screen to a single color"
subtask, it does not get me my minimal shader which was the point of
the exercise.

Here's an example:

load 'pacman'
'install' jpkg 'graphics/gl2 api/gles'
require 'graphics/gl2 api/gles'
coinsert 'jgl2 jgles'

FORM=: 0 : 0
 pc form closeok;
 minwh 320 240; cc gl opengl flush;
)
fshader=: 0 :0
  void main(void) {
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
  }
)
form_run=: 3 : 0
  wd FORM
  'err program'=: gl_makeprogram '';fshader
  if.#err do. smoutput err return. end.
  wd 'pshow'
  gl_paint ''
)
form_gl_paint=: 3 : 0
  smoutput 'painting'
  glClearColor 0 0 1 1
  glClear GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT
  glUseProgram program
)
form_run''

Now...

Part of the problem is that I do not know what is happening in libjqt,
and those entry points are not documented. But I do not necessarily
need that, I hope, not right now anyways.

Anyways, if I eliminate the glClearColor and glClear statements, the
image is black. But if the shader were to be used, the image would be
red.

How do I make this work?

Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to