OGLInlineDrawing (object)

バージョン 1.12.0 で追加.

The OGLInlineDrawing inherits InlineDrawing object for OpenGL direct rendering.

OGLInlineDrawing OGLInlineDrawing OGLInlineDrawing InlineDrawingBase InlineDrawingBase OGLInlineDrawing->InlineDrawingBase InlineDrawing InlineDrawing InlineDrawingBase->InlineDrawing InlineEntityBase InlineEntityBase InlineDrawingBase->InlineEntityBase InlineEntity InlineEntity InlineEntityBase->InlineEntity

Members

Integer[] prevProgramValues  
Integer[] prevCullFace  
Integer[] prevCullFaceEnable  
Integer[] prevDepthMask  
Integer[] prevDepthEnable  
Integer[] prevDeptFunc  
/*
** Example: OGLInlineDrawing
*/

require InlineDrawing;
  
operator entry() {

  InlineDrawing drawing = OGLInlineDrawing_GetInstance();
  
  // create a shape    
  PolygonMesh myMesh = PolygonMesh();    
  InlineShape shape = InlineMeshShape('myMesh', myMesh);
  drawing.registerShape(shape);
  
  // create a shader
  InlineShader shader = OGLInlineShader(
    "myFlatShader",
    "
      #version 120 // My shader uses GLSL 1.20
  
      uniform mat4 u_viewMatrix;
      uniform mat4 u_projection;
      uniform mat4 u_modelMatrix;
      
      attribute vec4 positions;
  
      void main(){
        gl_Position = u_projection * (u_viewMatrix * (u_modelMatrix * positions));
      }
    ", "
      #version 120 // My shader uses GLSL 1.20
      
      uniform vec4 u_materialColor;
      uniform float u_time;
      
      void main(){
        gl_FragColor = u_materialColor * u_time;
      }
    ");
  
  shader.defineUniform(InlineUniform("u_viewMatrix", Mat44()));
  shader.defineUniform(InlineUniform("u_projection", Mat44()));
  shader.defineUniform(InlineUniform("u_modelMatrix", Mat44()));
  shader.defineUniform(InlineUniform("u_materialColor", Color(1.0, 0.0, 0.0)));
  shader.defineUniform(InlineUniform("u_time", 0.0));
  shader.defineAttribute('positions', "Vec3");
  
  // add the shader to the drawing
  drawing.registerShader(shader);
  
  // create a material
  InlineMaterial red = shader.getOrCreateMaterial('red');
  red.setUniform('u_materialColor', Color(1.0, 0.0, 0.0));
  
  // create an instance and add it to the red material
  InlineInstance instance = InlineInstance('redMesh', drawing.getRoot(), shape);
  instance.addMaterial(red);
  
}

/*
** Output:


*/

Methods

  OGLInlineDrawing ( in OGLInlineDrawing other )
  OGLInlineDrawing ( in String name )
  OGLInlineDrawing ()
OGLInlineDrawing clone ? ()
  drawOverlay ! ( io DrawContext context, in SInt32 x, in SInt32 y, in SInt32 width, in SInt32 height, in String filePath, in Boolean transparent )
OGLInlineDrawing getInstance ? ()
OGLInlineDrawing getNewInstance ? ()
InlineInstance setupSceneGrid ! ( in String name, in Scalar xSize, in Scalar zSize, in Size xCount, in Size zCount, in Color color )

Methods in detail

OGLInlineDrawing ( in OGLInlineDrawing other )

copy constructor


OGLInlineDrawing ( in String name )

default constructor given a name


OGLInlineDrawing ()

default constructor


OGLInlineDrawing OGLInlineDrawing.clone? ()

clone method


OGLInlineDrawing.drawOverlay! ( io DrawContext context, in SInt32 x, in SInt32 y, in SInt32 width, in SInt32 height, in String filePath, in Boolean transparent )

draws an overlay using 2D rendering


OGLInlineDrawing OGLInlineDrawing.getInstance? ()

Get the OGLInlineDrawing singleton, but through a method


OGLInlineDrawing OGLInlineDrawing.getNewInstance? ()

Get the OGLInlineDrawing singleton, but through a method


InlineInstance OGLInlineDrawing.setupSceneGrid! ( in String name, in Scalar xSize, in Scalar zSize, in Size xCount, in Size zCount, in Color color )