MinGW+Mesa3D 7.8.2びビルドできたかたはいらっしゃいませんか?
先日のDesktop-M3Gの件で、作者の方コメントで教えていただいた方法でビルド開始…うまいこといくかなと思ったら、
glBindBufferが無いよん
というエラーでトホホ。調べてみると、OpenGL1.5の関数らしい
そいで、MinGWに入っているgl.hを見たら…
OpenGL1.3(Mesa4.0) !!??
そらあかんわ、というわけで、Mesa3Dの最新版を得ることに。
調べてみると、Mesa3Dの最新版なら使えそうだ。
というわけで、ダウンロードしてビルド。
ところが、configureが使えない。"install-shとか使え"とか出てきてる。
こまったなぁと思っていると、MinGW32でのビルド方法が書かれていた。
cd mesa
mingw32-make.exe -f Makefile.mgw
とやると、確かにビルドが始まったので、ほっとした…のもつかの間。
インクルードファイルが無いとかいいやがる。
調べてみると、shader/slang/libraryディレクトリのファイル名が変わってた。というわけで改名。
さあ、これで、ビルドできるだろうとおもったら、とんでもない量のエラーが…。
mingw32-gcc -o shader/slang/slang_compile.o -DBUILD_GL32 -D_DLL -DMESA_MINWARN -DNDEBUG -DUSE_EXTERNAL_DXTN_LIB=1 -I../../include -I../../src/mesa -I../../src/gallium/include -I../../src/gallium/auxiliary -c shader/slang/slang_compile.c
In file included from shader/slang/slang_compile.c:2797:
shader/slang/library/slang_core_gc.h:108: error: syntax error before "int"
shader/slang/library/slang_core_gc.h:110: error: `f' undeclared here (not in a function)
shader/slang/library/slang_core_gc.h:110: error: initializer element is not constant
shader/slang/library/slang_core_gc.h:110: error: (near initialization for `slang_core_gc[0]')
shader/slang/library/slang_core_gc.h: In function `__constructor':
shader/slang/library/slang_core_gc.h:120: error: `__retVal' undeclared (first use in this function)
shader/slang/library/slang_core_gc.h:120: error: (Each undeclared identifier is reported only once
shader/slang/library/slang_core_gc.h:120: error: for each function it appears in.)
shader/slang/library/slang_core_gc.h: At top level:
shader/slang/library/slang_core_gc.h:123: error: syntax error before "__constructor"
shader/slang/library/slang_core_gc.h:124: error: redefinition of '__constructor'
shader/slang/library/slang_core_gc.h:119: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h: In function `__constructor':
shader/slang/library/slang_core_gc.h:125: error: syntax error before "vec4_sne"
shader/slang/library/slang_core_gc.h: At top level:
shader/slang/library/slang_core_gc.h:128: error: syntax error before "__constructor"
shader/slang/library/slang_core_gc.h:129: error: conflicting types for '__constructor'
shader/slang/library/slang_core_gc.h:124: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h:129: error: conflicting types for '__constructor'
shader/slang/library/slang_core_gc.h:124: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h: In function `__constructor':
shader/slang/library/slang_core_gc.h:130: error: syntax error before "vec4_sne"
shader/slang/library/slang_core_gc.h: At top level:
shader/slang/library/slang_core_gc.h:133: error: syntax error before "__constructor"
shader/slang/library/slang_core_gc.h:133: error: syntax error before "b"
shader/slang/library/slang_core_gc.h:134: error: redefinition of '__constructor'
shader/slang/library/slang_core_gc.h:129: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h:134: error: conflicting types for '__constructor'
shader/slang/library/slang_core_gc.h:124: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h: In function `__constructor':
shader/slang/library/slang_core_gc.h:134: error: number of arguments doesn't match prototype
shader/slang/library/slang_core_gc.h:129: error: prototype declaration
shader/slang/library/slang_core_gc.h:135: error: `__retVal' undeclared (first use in this function)
shader/slang/library/slang_core_gc.h:135: error: `b' undeclared (first use in this function)
shader/slang/library/slang_core_gc.h: At top level:
shader/slang/library/slang_core_gc.h:139: error: conflicting types for '__constructor'
shader/slang/library/slang_core_gc.h:134: error: previous definition of '__constructor' was here
shader/slang/library/slang_core_gc.h:139: error: conflicting types for '__constructor'
shader/slang/library/slang_core_gc.h:124: error: previous definition of '__constructor' was here
(...以下延々)
調べてみると、shader/slang/slang_compile.cの中はこうなっていた。
static const unsigned char slang_core_gc[] = { #include "library/slang_core_gc.h" }; …
で、shader/slang/library/slang_core_gc.hの中身はこんなん
int __constructor(const float f) { __asm vec4_to_ivec4 __retVal, f; } int __constructor(const bool b) { __retVal = b; } int __constructor(const int i) { __retVal = i; } bool __constructor(const int i) { __asm vec4_sne __retVal, i, 0.0; } bool __constructor(const float f) { __asm vec4_sne __retVal, f, 0.0; } bool __constructor(const bool b) { __retVal = b; } float __constructor(const int i) { __asm ivec4_to_vec4 __retVal, i; }
なんじゃこりゃ、理解の範囲を超えてしまいました…もうイヤ!!!
どなたか助け船を…OTL