それで、私はしばらくの間私を追ってきた次の問題を抱えています。
Shaderは頂点のグループを描画します。これはテキスト ファイルから GPU に読み込まれるため、OpenGLでは入力する必要がまったくありません。
struct Shader
{
// Load that shader from filename
Shader( string filename ... ) ;
} ;
頂点のグループがコードに入力されています
VertexArray<VertexPTC> ptcVerts ; // PTC is position, texcoord, color.
の配列は、によってptcVerts
のみ描画されますptcShader
。の配列pcVerts
を aで描画しようとするとptShader
エラーになります (色の値が texcoords として解釈されるため)。
したがって、コンパイラにそのようなエラーにフラグを付けてもらいたいと思います。方法は次のとおりです。
template<typename T> struct Shader
現在、シェーダーはまったく使用T
されていませんが、コンパイル時に型付けされます。コンパイラは、 aVertexArray<VertexPTC>
によって描画されるという制限を適用するようになりましたShader<VertexPTC>
。
これは良いですか悪いですか?Shaderは を必要とせず、使用しないT
ので、私のテンプレートの使用はどういうわけか誤用ではないかと心配しています。