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; }
/**----------------------------------------------------------------------------- * 애니메이션 설정 *------------------------------------------------------------------------------ */ 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(); // 로깅 }