HRESULT CreateShaderResource(IDirect3DDevice8 *Device, unsigned long Res, const unsigned long* Decl, ShaderType Type, unsigned long* Handle) { HRESULT Hr; unsigned long Size; unsigned long *Data; char *Name; D3DCAPS8 Caps; DWORD Usage = 0; Hr = S_OK; if(!Res) { Handle = 0; return(S_OK); } Device->GetDeviceCaps(&Caps); // for those mad Laptop users if(Caps.DeviceType == D3DDEVTYPE_REF) { Usage = D3DUSAGE_SOFTWAREPROCESSING; } Name = MAKEINTRESOURCE(Res); if(GetFileResource(Name,"RT_RCDATA",(void **)&Data,Size)) { if(Type == SHADER_VERTEXSHADER) { if(FAILED(Hr = Device->CreateVertexShader(Decl,Data,Handle,Usage))) { return(Hr); } } else { if(FAILED(Hr = Device->CreatePixelShader(Data,Handle))) { return(Hr); } } } else { return(E_FAIL); } return(Hr); }
bool Lighting::LoadAttenTexture(TSTR &Name, LPDIRECT3DDEVICE9 Device) { HRESULT Hr; void *Data; unsigned long Size; TCHAR error[256]; _stprintf(error,_T("%s"),GetString(IDS_ERROR)); Hr = S_OK; SAFE_RELEASE(m_Atten); if(GetFileResource(MAKEINTRESOURCE(IDR_ATTENUATE),_T("RT_RCDATA"), &Data,Size)) { Hr = D3DXCreateTextureFromFileInMemoryEx(Device, Data, Size, D3DX_DEFAULT, D3DX_DEFAULT, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, 0, NULL, NULL, (IDirect3DTexture9 **)&m_Atten); } else { Hr = E_FAIL; } if(Hr != S_OK) { TSTR Str; Str = TSTR(GetString(IDS_LOAD_FILES)) + Name + TSTR(GetString(IDS_CHECK_PATHS)) + TSTR(GetString(IDS_ERROR_CODE)) + TSTR(DXGetErrorString(Hr)); MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | MB_APPLMODAL); return(false); } return(true); }
static void GetDicomConformanceStatement(RestApiGetCall& call) { std::string statement; GetFileResource(statement, EmbeddedResources::DICOM_CONFORMANCE_STATEMENT); call.GetOutput().AnswerBuffer(statement, "text/plain"); }
bool Lighting::LoadSpotTexture(TSTR &Name, LPDIRECT3DDEVICE9 Device) { HRESULT Hr; void *Data; unsigned long Size; D3DSURFACE_DESC Desc; float Bias,X,Y; unsigned int Range; TCHAR error[256]; _stprintf(error,_T("%s"),GetString(IDS_ERROR)); Hr = S_OK; SAFE_RELEASE(m_Spot); if(GetFileResource(MAKEINTRESOURCE(IDR_SPOTLIGHT),_T("RT_RCDATA"), &Data,Size)) { Hr = D3DXCreateTextureFromFileInMemoryEx(Device, Data, Size, D3DX_DEFAULT, D3DX_DEFAULT, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, 0, NULL, NULL, (IDirect3DTexture9 **)&m_Spot); } else { Hr = E_FAIL; } if(Hr != S_OK) { TSTR Str; Str = TSTR(GetString(IDS_LOAD_FILES)) + Name + TSTR(GetString(IDS_CHECK_PATHS)) + TSTR(GetString(IDS_ERROR_CODE)) + TSTR(DXGetErrorString(Hr)); MessageBox(NULL,Str,error,MB_OK | MB_ICONERROR | MB_SETFOREGROUND | MB_APPLMODAL); return(false); } // // Set projection matrix // ((LPDIRECT3DTEXTURE9)m_Spot)->GetLevelDesc(0,&Desc); X = 0.5f + (0.5f / (float)Desc.Width); Y = 0.5f + (0.5f / (float)Desc.Height); Range = 0xFFFFFFFF >> (32 - 24); Bias = -0.001f * (float)Range; m_MatScaleBias = D3DXMATRIX(0.5f, 0.0f, 0.0f, 0.0f, 0.0f, -0.5f, 0.0f, 0.0f, 0.0f, 0.0f, (float)Range, 0.0f, X, Y, Bias, 1.0f); return(true); }
HRESULT CreateVertexShaderResource(IDirect3DDevice9 *Device, unsigned long Res, LPDIRECT3DVERTEXDECLARATION9 * vdecl, LPDIRECT3DVERTEXSHADER9 *Handle) { HRESULT Hr; unsigned long Size; unsigned long *Data; char *Name; D3DCAPS9 Caps; DWORD Usage = 0; Hr = S_OK; if(!Res) { Handle = 0; return(S_OK); } Device->GetDeviceCaps(&Caps); // for those mad Laptop users if(Caps.DeviceType == D3DDEVTYPE_REF) { Usage = D3DUSAGE_SOFTWAREPROCESSING; } D3DVERTEXELEMENT9 test[] = { { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 }, { 0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 0 }, { 0, 24, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL, 1 }, { 0, 36, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 }, { 0, 44, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1 }, { 0, 52, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 2 }, { 0, 60, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 3 }, D3DDECL_END() }; Hr = Device->CreateVertexDeclaration(test, vdecl); if (FAILED(Hr)) { return Hr; } Name = MAKEINTRESOURCE(Res); if(GetFileResource(Name,"RT_RCDATA",(void **)&Data,Size)) { Hr = Device->CreateVertexShader(Data, Handle); if (FAILED(Hr)) { return Hr; } } else { return(E_FAIL); } return(Hr); }