コード例 #1
0
ファイル: Scene.cpp プロジェクト: sunzhiyuan/opencl
//--------------------------------------------------------------------------------------
// Name: RenderCube()
// Desc: 
//--------------------------------------------------------------------------------------
VOID CSample::RenderCube()
{
    FLOAT32 fPrevFrameTime = m_fCurrentTime;
    m_fCurrentTime = FrmGetTime();

    // Rotate the object
    m_fRotTotal += m_fSpeed * ( m_fCurrentTime - fPrevFrameTime );

    FRMMATRIX4X4 matTrans1  = FrmMatrixTranslate( 0.0f, 0.6f * FrmSin( m_fRotTotal * 2.0f ), 0.0f );
	FRMVECTOR3 vTmp;
	vTmp = FRMVECTOR3(0.0f, 0.0f, 1.0f);
	FRMMATRIX4X4 matRotate1 = FrmMatrixRotate( m_fRotTotal *  1.0f, vTmp );
	vTmp = FRMVECTOR3(1.0f, 0.0f, 0.0f);
	FRMMATRIX4X4 matRotate2 = FrmMatrixRotate( m_fRotTotal *  3.0f, vTmp );
	vTmp = FRMVECTOR3(0.0f, 1.0f, 0.0f);
	FRMMATRIX4X4 matRotate3 = FrmMatrixRotate( m_fRotTotal *  1.5f, vTmp );
	vTmp = FRMVECTOR3(1.0f, 0.0f, 1.0f);
	FRMMATRIX4X4 matRotate4 = FrmMatrixRotate( m_fRotTotal * -1.0f, vTmp );

    FRMMATRIX4X4 matModel     = FrmMatrixMultiply( matRotate4,   matTrans1 );
    matModel                  = FrmMatrixMultiply( matRotate3,   matModel );
    matModel                  = FrmMatrixMultiply( matRotate2,   matModel );
    matModel                  = FrmMatrixMultiply( matRotate1,   matModel );
    FRMMATRIX4X4 matModelView = FrmMatrixMultiply( matModel,     m_matView );
    m_matModelViewProj        = FrmMatrixMultiply( matModelView, m_mPerspectiveMatrix );

    glEnable( GL_DEPTH_TEST );

    glUseProgram( m_hConstantShader );
    glUniformMatrix4fv( m_nConstantMVPSlot, 1, FALSE, (FLOAT32*)&m_matModelViewProj );

    glVertexAttribPointer( 0, 3, GL_FLOAT, 0, 0, g_pCube );
    glEnableVertexAttribArray( 0 );

    glVertexAttribPointer( 1, 4, GL_FLOAT, 0, 0, g_pColor );
    glEnableVertexAttribArray( 1 );

    glDrawArrays( GL_TRIANGLE_STRIP, 0, 4 );
    glDrawArrays( GL_TRIANGLE_STRIP, 4, 4 );

    glDrawArrays( GL_TRIANGLE_STRIP,  8, 4 );
    glDrawArrays( GL_TRIANGLE_STRIP, 12, 4 );

    glDrawArrays( GL_TRIANGLE_STRIP, 16, 4 );
    glDrawArrays( GL_TRIANGLE_STRIP, 20, 4 );

    glDisableVertexAttribArray( 1 );
    glDisableVertexAttribArray( 0 );

    glDisable( GL_DEPTH_TEST );
}
コード例 #2
0
ファイル: render.cpp プロジェクト: banketree/Magicamera
void Render::on_renerTimer()
{
    float timenow;
    timenow = FrmGetTime();
    float delta = timenow - m_lastTime;
    m_lastTime = timenow;
    // Update and render the application
    m_MagicMain.renderFrame(delta);
    // Present the scene
    eglSwapBuffers( m_eglDisplay, m_eglSurface );
//     m_fpsFrames++;
//     m_fpsTime += delta;
//     if (m_fpsTime > 1){
//         this->setWindowTitle(QString("Render - %1").arg(m_fpsFrames));
//         m_fpsFrames = 0;
//         m_fpsTime = 0;
//     }
}
コード例 #3
0
ファイル: Scene.cpp プロジェクト: sunzhiyuan/opencl
//--------------------------------------------------------------------------------------
// Name: CSample()
// Desc: Constructor
//--------------------------------------------------------------------------------------
CSample::CSample( const CHAR* strName ) : CFrmApplication( strName )
{
    m_hConstantShader = NULL;
    m_hTextureShader  = NULL;
    m_pLogoTexture    = NULL;
    m_pMotionBlur	  = NULL;

    m_fStartTime   = FrmGetTime();
    m_fCurrentTime = 0.0f;

    m_nFBOTextureWidth   = 256;
    m_nFBOTextureHeight  = 256;

    m_pMotionBlur        = NULL;
    m_bMotionBlurOn      = TRUE;

    m_fSpeed             = 2.0f;
    m_fShutterDuration   = 0.025f;
    m_fRotTotal          = 0.0f;
}
コード例 #4
0
ファイル: Scene.cpp プロジェクト: sunzhiyuan/opencl
//--------------------------------------------------------------------------------------
// Name: CSample()
// Desc: Constructor
//--------------------------------------------------------------------------------------
CSample::CSample( const CHAR* strName ) : CFrmApplication( strName ),
                                          m_cube_indices(sizeof(g_cube_indices) / sizeof(g_cube_indices[0])),
                                          m_cube_lines( m_cube_indices / 2)
{
    m_fCurrentTime              = 0.0f;
    m_fStartTime                = FrmGetTime();

    m_is_frozen                 = FALSE;
    m_bRotationOn               = TRUE;

    m_MultiSampleShaderProgram  = NULL;
    m_pLogoTexture              = NULL;

    m_OpenGLESVersion           = GLES3;

    m_currentTextureIndex       = 0;

 #ifdef __ANDROID__
     fp_glProgramUniformMatrix4fv     = (PFNGLGENPROGRAMUNIFORMMATRIX4FVOESPROC) eglGetProcAddress("glProgramUniformMatrix4fv");
     fp_glTexStorage2DMultisample     = (PFNGLTEXSTORAGE2DMULTISAMPLEOESPROC) eglGetProcAddress("glTexStorage2DMultisample");
 #endif
}