コード例 #1
0
ファイル: GSTextureFX11.cpp プロジェクト: AltimorTASDK/pcsx2
bool GSDevice11::CreateTextureFX()
{
    HRESULT hr;

    D3D11_BUFFER_DESC bd;

    memset(&bd, 0, sizeof(bd));

    bd.ByteWidth = sizeof(VSConstantBuffer);
    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.BindFlags = D3D11_BIND_CONSTANT_BUFFER;

    hr = m_dev->CreateBuffer(&bd, NULL, &m_vs_cb);

    if(FAILED(hr)) return false;

    memset(&bd, 0, sizeof(bd));

    bd.ByteWidth = sizeof(PSConstantBuffer);
    bd.Usage = D3D11_USAGE_DEFAULT;
    bd.BindFlags = D3D11_BIND_CONSTANT_BUFFER;

    hr = m_dev->CreateBuffer(&bd, NULL, &m_ps_cb);

    if(FAILED(hr)) return false;

    D3D11_SAMPLER_DESC sd;

    memset(&sd, 0, sizeof(sd));

    sd.Filter = theApp.GetConfig("MaxAnisotropy", 0) && !theApp.GetConfig("paltex", 0) ? D3D11_FILTER_ANISOTROPIC : D3D11_FILTER_MIN_MAG_MIP_POINT;
    sd.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
    sd.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
    sd.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
    sd.MinLOD = -FLT_MAX;
    sd.MaxLOD = FLT_MAX;
    sd.MaxAnisotropy = theApp.GetConfig("MaxAnisotropy", 0);
    sd.ComparisonFunc = D3D11_COMPARISON_NEVER;

    hr = m_dev->CreateSamplerState(&sd, &m_palette_ss);

    if(FAILED(hr)) return false;

    hr = m_dev->CreateSamplerState(&sd, &m_rt_ss);

    if(FAILED(hr)) return false;

    // create layout

    VSSelector sel;
    VSConstantBuffer cb;

    SetupVS(sel, &cb);

    //

    return true;
}
コード例 #2
0
/**-----------------------------------------------------------------------------
 * 애니메이션 설정
 *------------------------------------------------------------------------------
 */
VOID Animate()
{
	D3DXMATRIXA16	matX;
	D3DXMATRIXA16	matY;

	D3DXMatrixRotationX( &matX, g_xRot );
	D3DXMatrixRotationY( &matY, g_yRot );
	g_matWorld = matX * matY;
	g_pd3dDevice->SetTransform( D3DTS_WORLD, &g_matWorld ); /// 디바이스에 월드행렬 설정
	SetupLights();
	SetupVS();
	LogFPS();						// 로깅
}