コード例 #1
0
ファイル: adotier.cpp プロジェクト: jetlive/skiaming
STDMETHODIMP CADOTier::ParamQuery(BSTR query, long idx1, BSTR idx2, BSTR idx3)
{
	HRESULT hr = ChangeParameter(0, adInteger, (_variant_t) idx1, adParamInput, -1);
	if (SUCCEEDED(hr))
		hr = ChangeParameter(1, adVarChar, (_variant_t) idx2, adParamInput, 25);
	if (SUCCEEDED(hr))
		hr = ChangeParameter(2, adVarChar, (_variant_t) idx3, adParamInput, 80);
	if (SUCCEEDED(hr))
		hr = m_command->put_CommandText(query);
	_Recordset* prec = 0;
	if (SUCCEEDED(hr))
		hr = m_command->Execute(pvtEmpty, pvtEmpty2, adCmdText, &prec);
	if (SUCCEEDED(hr))
		prec->Release();
	return hr;
}
コード例 #2
0
ファイル: adotier.cpp プロジェクト: jetlive/skiaming
STDMETHODIMP CADOTier::CallStoredProc(long idx1, BSTR idx2, BSTR idx3)
{
	HRESULT hr = ChangeParameter(0, adInteger, (_variant_t) idx1, adParamInput, 4);
	if (SUCCEEDED(hr))
		hr = ChangeParameter(1, adVarChar, (_variant_t) idx2, adParamInput, 25);
	if (SUCCEEDED(hr))
		hr = ChangeParameter(2, adVarChar, (_variant_t) idx3, adParamInput, 80);
	if (SUCCEEDED(hr))
		hr = m_command->put_CommandText(L"{call MyProc (?, ?, ?)}");
	_Recordset* prec = 0;
	if (SUCCEEDED(hr))
		hr = m_command->Execute(pvtEmpty, pvtEmpty2, adCmdText, &prec);
	if (SUCCEEDED(hr))
		prec->Release();
	return hr;
}
コード例 #3
0
bool OGLSimpleLighting::Init(int windowWidth, int windowHeight)
{
    bool res = gs::Stage::Init(windowWidth, windowHeight);
    
    if (res) {
        res &= InitGUI();

		// Program textured objects setup
        auto vertexShader = std::make_unique<gs::Shader>(GL_VERTEX_SHADER);
        auto programTex = std::make_shared<gs::Program>();
        
        vertexShader->SetSource("simpleLighting.vert");
        res &= vertexShader->Compile();
        programTex->Attach(vertexShader->get());
        
        auto fragmentShader = std::make_unique<gs::Shader>(GL_FRAGMENT_SHADER);
        fragmentShader->SetSource("simpleLighting.frag");
        res &= fragmentShader->Compile();
        programTex->Attach(fragmentShader->get());
        
		res &= programTex->Link();
		programTex->Use();
        programs.push_back(programTex);

		mvpLocation = glGetUniformLocation(programTex->get(), "MVP");
		normalMatrixLocation = glGetUniformLocation(programTex->get(), "NormalMatrix");
		light.direction = glm::vec3(-1.0f, 0.0f, 0.0f);
		light.ambientColor = glm::vec3(0.2f);
		light.diffuseColor = glm::vec3(1.0f);
		light.specularColor = light.diffuseColor;

		lightDirLoc = glGetUniformLocation(programTex->get(), "light.direction");
		diffuseLoc = glGetUniformLocation(programTex->get(), "light.diffuseColor");
		ambientLoc = glGetUniformLocation(programTex->get(), "light.ambientColor");
        
		//Texture setup
		auto textureFloor = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
		res &= textureFloor->LoadTexture("Floor.dds");
		textureFloor->ChangeParameter(GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);
		textureFloor->ChangeParameter(GL_TEXTURE_MAG_FILTER, GL_LINEAR);
		textures.push_back(std::move(textureFloor));

		auto textureCamouflage = std::make_unique<gs::Texture>(IMAGE_TYPE::GLI);
		res &= textureCamouflage->LoadTexture("Hieroglyphes.dds");
		textures.push_back(std::move(textureCamouflage));

		// Geometry setup
        auto vao = std::make_unique<gs::VertexArray>();
        vao->BindVAO();
        vaos.push_back(std::move(vao));
        
		auto vbo = std::make_unique<gs::VertexBuffer>(GL_ARRAY_BUFFER);
		vbo->BindVBO();

		std::vector<gs::Vertex> vertices;
		OGLCube cube;
		cube.InitVertices(glm::vec3(0));
		vertices.insert(vertices.end(), cube.GetVertices().begin(), cube.GetVertices().end());		

		OGLQuad quad;
		quad.SetSize(1000);
		quad.InitVertices(glm::vec3(0));
		vertices.insert(vertices.end(), quad.GetVertices().begin(), quad.GetVertices().end());

		glBufferData(GL_ARRAY_BUFFER, sizeof(gs::Vertex) * vertices.size(), vertices.data(), GL_STATIC_DRAW);

		vbos.push_back(std::move(vbo));

		glEnableVertexAttribArray(0);
		glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, position));
		glEnableVertexAttribArray(1);
		glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, texCoords));
		glEnableVertexAttribArray(2);
		glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(gs::Vertex), (void*)offsetof(gs::Vertex, normal));

		// Camera setup
        camera.SetPosition(glm::vec3(0.0f, 0.0f, 3.0f));
        camera.SetSpeed(8.0f);
        camera.SetupProjection(45.0f, windowWidth/(float)windowHeight);

		lightObj.Load("");

		// OpenGL setup
		glEnable(GL_DEPTH_TEST);
    }
    return res;
}