BootcampでWindows7を搭載したMacにVisual Studio 2012/2013をインストールしました。
ただし、私の VS プロジェクト (win32 プロジェクト) は正しく動作していないようです。F5/ctrl+F5 をクリックすると、ウィンドウが表示され、突然消えます。VS 2012 と 2013 の両方を試しましたが、どちらも同じ問題が発生しました。また、bin フォルダーに生成された exe ファイルにも同じ問題があります。私がテストしたすべてのプロジェクトは、他の PC でも問題なく動作します。
基本的なコンソール「HelloWorld」プロジェクトを試してみましたが、正しく機能しました。
何が問題なのか知っている人はいますか?
ここのスクリーンショット: http://imgur.com/amQS3Ys
どうもありがとう!
ものもらい
<!-- language: C++ -->
#include <sb6.h>
#include <vmath.h>
class my_app : public sb6::application
{
public:
void startup(){
rendering_program = compile_shaders();
glGenVertexArrays(1, &vertex_array_object);
glBindVertexArray(vertex_array_object);
}
void render(double currentTime){
const GLfloat color[] = { 0.0f, 0.0f, 0.5f, 1.0f };
glClearBufferfv(GL_COLOR, 0, color);
glUseProgram(rendering_program);
GLfloat attrib[] = { (float)sin(currentTime) * 0.5f,
(float)cos(currentTime) * 0.6f,
0.0f, 0.0f };
glVertexAttrib4fv(0, attrib);
GLfloat attribColor[] = { 1.0f, 0.0f, 0.0f, 1.0f };
glVertexAttrib4fv(1, attribColor);
glDrawArrays(GL_TRIANGLES, 0, 3);
}
void shutdown(){
glDeleteVertexArrays(1, &vertex_array_object);
glDeleteProgram(rendering_program);
}
private:
GLuint rendering_program;
GLuint vertex_array_object;
GLuint compile_shaders(void){
GLuint vertex_shader;
GLuint fragment_shader;
GLuint program;
static const GLchar * vertex_shader_source[] = {
"#version 410 core \n"
" \n"
"layout (location = 0) in vec4 offset; \n"
"layout (location = 1) in vec4 color; \n"
" \n"
"out VS_OUT \n"
"{ \n"
" vec4 color; \n"
"} vs_out; \n"
" \n"
"void main(void) \n"
"{ \n"
" const vec4 vertices[3] = vec4[3](vec4( 0.25, -0.25, 0.5, 1.0), \n"
" vec4(-0.25, -0.25, 0.5, 1.0), \n"
" vec4( 0.25, 0.25, 0.5, 1.0)); \n"
" \n"
" gl_Position = vertices[gl_VertexID] + offset; \n"
" vs_out.color = color; \n"
"} \n"
};
static const GLchar * fragment_shader_source[] = {
"#version 410 core \n"
" \n"
"in VS_OUT \n"
"{ \n"
" vec4 color; \n"
"} fs_in; \n"
" \n"
"out vec4 color; \n"
" \n"
"void main(void) \n"
"{ \n"
" color = fs_in.color; \n"
"} \n"
};
vertex_shader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertex_shader, 1, vertex_shader_source, NULL);
glCompileShader(vertex_shader);
fragment_shader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fragment_shader, 1, fragment_shader_source, NULL);
glCompileShader(fragment_shader);
program = glCreateProgram();
glAttachShader(program, vertex_shader);
glAttachShader(program, fragment_shader);
glLinkProgram(program);
glDeleteShader(vertex_shader);
glDeleteShader(fragment_shader);
return program;
}
};
DECLARE_MAIN(my_app);