Exemplo n.º 1
0
void CLGLRayCast::trueUpdate(){
   if (!m_clInitialized)
        return;
   if (!m_kernelCompiled){
       ChangeSource(m_source_str);
       ChangeKernel(m_kernel_str);
       m_kernelCompiled = true;
       return;
   }

    cl::NDRange global(width, height);
    cl::NDRange local(1,1);
   // cl::KernelFunctor kernel = m_kernel.bind(m_queue, global, local);

    glFinish();

    cl_int err0 = m_queue.enqueueAcquireGLObjects(&m_gl_mem_objects);

    //kernel(*m_canvas);
    cl_int err1 = m_kernel.setArg(0, *m_canvas);

    Update();

    cl_int err2 = m_queue.enqueueNDRangeKernel(m_kernel, cl::NullRange, global, local);


    m_queue.finish();
    cl_int err3 = m_queue.enqueueReleaseGLObjects(&m_gl_mem_objects);

    FullScreenTexture(m_canvas_tex);

}
Exemplo n.º 2
0
void KeyboardUpCallback(unsigned char key, int x, int y)
{
	gKeys[key] = false;

	switch (key)
	{
		case 'p': { bPause = !bPause; 
					if (bPause)
						hud.SetDisplayString(1, "Paused - Hit \"p\" to Unpause", 0.3f, 0.55f);
					else
						hud.SetDisplayString(1, "", 0.0f, 0.0f);	
					getElapsedTime(); 
					break; }
		case 'x': { bShadows = !bShadows; break; }
		case 'b': { bDebugWireframeMode = !bDebugWireframeMode; break; }
		case 'c': { 
					// Reset the box
					NxMat33 m;
					m.id();
					box1->setGlobalOrientation(m);
					box1->setGlobalPosition(NxVec3(5,3.5,0));
					box1->setLinearVelocity(NxVec3(0,0,0));
					box1->setAngularVelocity(NxVec3(0,0,0));

					ChangeKernel();
					break; 
				  }
		case 27 : { exit(0); break; }
		default : { break; }
	}
}