それで、私はしばらくの間私を追ってきた次の問題を抱えています。
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ので、私のテンプレートの使用はどういうわけか誤用ではないかと心配しています。