//--------------------------------------------------------------------------------------- // シェーダ初期化 //--------------------------------------------------------------------------------------- HRESULT InitShader() { // シェーダ読み込み HRESULT hr = D3DXCreateEffectFromFile(g_pD3DDevice, PATH_FXTEST, NULL, NULL, 0, NULL, &g_pFX, NULL); if (FAILED(hr)) { TCHAR szMsg[1024]; _stprintf(szMsg, _T("シェーダ(%s)読み込みエラー"), PATH_FXTEST); MessageBox(g_hWnd, szMsg, _T("error"), MB_OK); return hr; } // ハンドル取得 struct _param { LPCSTR pszName; D3DXHANDLE* pHandle; } param[] = { {"WORLDVIEWPROJECTION", &g_hMatWVP}, {"WORLD", &g_hMatW}, {"CAMERAPOSITION", &g_hCamera}, {"MATERIALDIFFUSE", &g_hDiffuse}, {"MATERIALSPECULAR", &g_hSpecular}, {"MATERIALPOWER", &g_hPower}, {"MATERIALAMBIENT", &g_hAmbient}, {"MATERIALTEXTURE", &g_hTexture}, {"MATERIALTEXTUREVALID", &g_hTexEnable}, }; for (int i = 0; i < _countof(param); i++) { *param[i].pHandle = g_pFX->GetParameterBySemantic(NULL, param[i].pszName); } g_hLight = g_pFX->GetParameterByName(NULL, "light"); for (int i = 0; i < MAX_TECHNIQUE; ++i) { g_hTech[i] = g_pFX->GetTechnique(i); } return hr; }