fortran66のブログ

fortran について書きます。

Intel Visual FortranARToolKit を LINK 出来ました。

とりあえず、最も簡単な方法として、Fortran 側は OpenGL での図形描画のみを行うこととして、描画サブルーチンを C 側のメインルーチンから呼ぶことにします。

Fortran のサブルーチン。

SUBROUTINE fcall() BIND(C) 
USE, INTRINSIC :: ISO_C_BINDING 
USE opengl_gl
USE opengl_glu
USE opengl_glut
IMPLICIT NONE

CALL glTranslatef(0.0_glfloat, 0.0_glfloat, 0.75_glfloat)
CALL glutWireSphere(1.0_gldouble, 10_glcint, 10_glcint)

RETURN
END SUBROUTINE fcall

一方、ARToolKit 側は、一番簡単な simpleLite.c をいじくることにして、Display 関数の中の1行を書き換えます。
すなわち DrawCube(); を fcall(); へ。

// All other lighting and geometry goes here.
//DrawCube();
fcall();

あとはリンカーのパスを通してやれば(これがかなり面倒ですが)動きます。C のメインプログラム側に、F90GLxx.lib の類を登録し、パスも指定すれば良いようです。
また Fortran Program のプロジェクト形式は Static Library で良いようです。