コード例 #1
0
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GL13_nglMultiTexCoord3dv(JNIEnv *__env, jclass clazz, jint texture, jlong vAddress, jlong __functionAddress) {
	const GLdouble *v = (const GLdouble *)(intptr_t)vAddress;
	glMultiTexCoord3dvPROC glMultiTexCoord3dv = (glMultiTexCoord3dvPROC)(intptr_t)__functionAddress;
	UNUSED_PARAMS(__env, clazz)
	glMultiTexCoord3dv(texture, v);
}
コード例 #2
0
ファイル: trisetobject.cpp プロジェクト: mdoube/drishti
void
TrisetObject::drawTriset(float pnear, float pfar, Vec step)
{
  glEnable(GL_DEPTH_TEST);

  bool black = (m_color.x<0.1 && m_color.y<0.1 && m_color.z<0.1);
  bool has_normals = (m_normals.count() > 0);
  bool per_vertex_color = (m_vcolor.count() > 0 && black);
  if (m_pointMode)
    {
      glEnable(GL_POINT_SPRITE);
      glActiveTexture(GL_TEXTURE0);
      glEnable(GL_TEXTURE_2D);
      glBindTexture(GL_TEXTURE_2D, Global::spriteTexture());
      glTexEnvf( GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE );
      glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
      glEnable(GL_POINT_SMOOTH);
      glPointSize(m_pointSize);
      glBegin(GL_POINTS);
      for(int i=0; i<m_triangles.count()/3; i+=m_pointStep)
	{
	  int v0 = m_triangles[3*i];
	  if ( m_texValues[v0].x >= pnear &&
	       m_texValues[v0].x <= pfar )
	    {
	      if (has_normals) glNormal3dv(m_tnormals[v0]);
	      if (per_vertex_color)
		glColor4f(m_drawcolor[v0].x, 
			  m_drawcolor[v0].y, 
			  m_drawcolor[v0].z,
			  m_opacity);

	      glVertex3dv(m_tvertices[v0]);
	    }
	}
      glEnd();
      glPointSize(1);
      glDisable(GL_POINT_SPRITE);
      glActiveTexture(GL_TEXTURE0);
      glDisable(GL_TEXTURE_2D);
    }
  else
    {
      glBegin(GL_TRIANGLES);
      for(int i=0; i<m_triangles.count()/3; i++)
	{
	  int v0 = m_triangles[3*i];
	  int v1 = m_triangles[3*i+1];
	  int v2 = m_triangles[3*i+2];
	  
	  if ( ! ((m_texValues[v0].x < pnear &&
		   m_texValues[v1].x < pnear &&
		   m_texValues[v2].x < pnear) ||
		  (m_texValues[v0].x > pfar  &&
		   m_texValues[v1].x > pfar  &&
		   m_texValues[v2].x > pfar)) )
	    {
	      glMultiTexCoord2d(GL_TEXTURE0,
				m_texValues[v0].y,
				m_texValues[v0].z);
	      if (has_normals) glNormal3dv(m_tnormals[v0]);
	      if (per_vertex_color)
		glColor4f(m_drawcolor[v0].x, 
			  m_drawcolor[v0].y, 
			  m_drawcolor[v0].z,
			  m_opacity);
	      glMultiTexCoord3dv(GL_TEXTURE2, m_tvertices[v0]);
	      glVertex3dv(m_tvertices[v0]+step);
	      
	      glMultiTexCoord2d(GL_TEXTURE0,
				m_texValues[v1].y,
				m_texValues[v1].z);
	      if (has_normals) glNormal3dv(m_tnormals[v1]);
	      if (per_vertex_color)
		glColor4f(m_drawcolor[v1].x, 
			  m_drawcolor[v1].y, 
			  m_drawcolor[v1].z,
			  m_opacity);
	      glMultiTexCoord3dv(GL_TEXTURE2, m_tvertices[v1]);
	      glVertex3dv(m_tvertices[v1]+step);
	      
	      glMultiTexCoord2d(GL_TEXTURE0,
				m_texValues[v2].y,
				m_texValues[v2].z);
	      if (has_normals) glNormal3dv(m_tnormals[v2]);
	      if (per_vertex_color)
		glColor4f(m_drawcolor[v2].x, 
			  m_drawcolor[v2].y, 
			  m_drawcolor[v2].z,
			  m_opacity);
	      glMultiTexCoord3dv(GL_TEXTURE2, m_tvertices[v2]);
	      glVertex3dv(m_tvertices[v2]+step);
	    }
	  
	}
      glEnd();
    }

  glDisable(GL_DEPTH_TEST);
}