Как восстановить устройство, создав экземпляр DirectX 9?

Ваш компьютер работает медленно и вяло? Он страдает от загадочных сообщений об ошибках и сбоев? Если это так, то вам нужен Reimage — лучшее программное обеспечение для исправления ошибок Windows и восстановления оптимальной производительности.

В этом типе руководства мы позволим им раскрыть некоторые из возможных триггеров, которые могут вызвать генерацию DirectX внутри оборудования, а затем почти все расскажут о наиболее вероятных способах решения этой проблемы.

Хорошо, я работал над этим совсем недавно, и вот что я позиционировал. Он был скомпилирован и взят до того, как я попытался создать экземпляр, я бы сказал, шейдера. Теперь он не компилируется, и в результате мне тоже интересно, как я учусь. Я только что отредактировал, и в появившемся окне создается небольшая камера для выбора.

hlsl примерно такой же, как отображаетсяи основной файл тегов h2и головка камеры

/****************************************** ****** ******** ** * ********************* УЧЕБНЫЕ ПОСОБИЯ ДЛЯ ФАРТУНА ПРЕДСТАВЛЕНЫ MORROWLAND ****** ******** *********** 1 . * ********************************************** Название проекта: Camera2 * * Описание проекта: Движение камеры и, следовательно, вращение * * Тип проекта: DirectX 3D ** Автор: Ронни Андре Рейерстад ** Веб-сайт: www.morrowland.com ** Электронная почта: [email protected] com ** Версия: английский (Великобритания) ** Дата: 18.12.2003 *********************************** **** ************************ **** ** ************* / #включать "main.h" HDC HDC означает NULL; // Private GDI Device ContextHWND hWnd = NULL; // Содержит дескриптор нашего окна HINSTANCE hInstance; // содержит пример применения LPDIRECT3D9 pD3D = NULL; // Версия DirectX 3D 9LPDIRECT3DDEVICE9 pD3DDevice = NULL; // Ключ устройства DirectX 3D Render[256]; // Массив, используемый для клавиатуры Routinebool active=TRUE; // Устанавливаем флаг интереса к окну в TRUE в полноэкранном режиме Defaultbool fullscreen=TRUE; // По умолчанию индикатор настроен на полноэкранный режим wrld[300];// Textures.LPDIRECT3DTEXTURE9 Texture = NULL;UINT uPasses; //используется для выставочных пропусковD3DXMATRIX matTrans;D3DXMATRIX matView; D3DXMATRIX worldViewProjection; D3DXMATRIX project_matrix; D3DXMATRIX IdentityMatrix; D3DXMATRIX translation_matrix; D3DXMATRIXrotation_matrix; D3DXMATRIX modelViewProj; // Управление поворотом куба с плавающей запятой g_fSpinY;float g_fSpinX;float g_fSpinZ;float b;int f2 подразумевает sizeof(FLOAT)*2;int f3 подразумевает sizeof(FLOAT)*3;int f4 равно sizeof(FLOAT)*4; D3DVERTEXELEMENT9 SDEC [] = ноль, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0, различны // поз, f4, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0, 2 // Tex0, f4 + F2, D3DDECLTYPE_FLOAT3, D3DDECLUSAGE_TEX0, 2 // Tex0, 2, TEXCOORD f4 + F2, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD // натуральный 3, f2 + F3 + F4, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT, 0, // тангенциальное 4, f4 + F3 + F2 + F3, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_BINORMAL , 0 , // бинормальный D3DDECCLUSAGE_BINORMAL, ноль , // бинормальный D3DDECLUSAGE_BINORMAL, 4 , // бинормальный ,// ////////////////NEW/////////// // /// //////НОВОЕ////////// /// /////НОВОЕ///////////////CCera objCamera; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Объявление WndProc//////////////////////////////////////// / / / // /////// Загрузить файл .X///////////////////////////// /// //// для каждого ///////////////////void LoadXFile_NoTexture( char* MeshFilename, ID3DXMesh* &Mesh) //Обнуление сетки и создание буферной сетки Equalso 0; ID3DXBuffer* MeshBuffer подразумевает 0; // Также загружаем улучшенный меш D3DXLoadMeshFromX( MeshFilename, D3DXMESH_MANAGED, pD3DDevice, &MeshBuffer, 0, 0, 0, &Mesh); Mesh->OptimizeInplace(D3DXMESHOPT_ATTRSORT // создать эффект из данного файла, а также, даже выдать ошибку, если часто возникает void LoadEffect(char* EffectFilename, ID3DXEffect* &d3dEffect) ID3DXBuffer* d3dErrors = NULL; D3DXCreateEffectFromFile(pD3DDevice, EffectFilename ,NULL, NULL , D3DXSHADER_OPTIMIZATION3, NULL , &d3dEffect , &d3dErrors); if(d3dErrors) MB_ICONEXCLAMATION); d3dErrors->Релиз(); выход(-1); HRESULT hr = d3dEffect->ValidateTechnique(d3dEffect->GetTechnique(0));//конец функции////////////////////////// / / ///////////////////////////////////////// /// /// // / ////////// ИЗМЕНИТЬ РАЗМЕР D3D СЦЕНЫ//////////////////// //// ////// //// /// ////////////////////////// ////// //////// ////// /void ReSizeD3DScene( int width, int height) // Изменяет размер и инициализирует таймфрейм DX if (height==0) // Делим на no на height = 1; // высота формы равна D3DXMatrixPerspectiveFovLH(&projection_matrix, 45.0f, (float)640/(float)480, 1.0f, 1000.0f ); pD3DDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)projection_matrix); /////////////////////////////////////////// // // / / / ///////////////////////////////////////// THE DIRECT3D InitD3D() init/ // против ///////////////////////////////////// /////// /// // / ///////////////////////////int D3DXMatrixIdentity( &projection_matrix); D3DXMatrixPerspectiveFovLH(&projection_matrix, 45.0f, (с плавающей точкой)640/(с плавающей запятой)480, 0.1f, 1000.0f ); pD3DDevice->SetTransform(D3DTS_PROJECTION, &(D3DMATRIX)projection_matrix); pD3DDevice->SetRenderState(D3DRS_ZENABLE, TRUE); // Буфер Z (буфер глубины) pD3DDevice->SetRenderState(D3DRS_CULLMODE, TRUE); // Отключить устранение обратной стороны pD3DDevice->SetRenderState(D3DRS_LIGHTING, FALSE); // выключаем свет//НОВОЕ/////////////////НОВОЕ//////////////////НОВОЕ//// // //////////NEW////////////////// // Карьера вида вверх (вектор) objCamera.Position_Camera(-15, 0.5f , -15 , 3 , 0.5f, 0, 0, 1, 0);//НОВОЕ//////////////////////////////// // per ////NEW//////////////////NEW//////////////// LoadEffect("Instance.fx" , эффектШейдер) ; LoadxFile_Notexture("sphere.x", Cubemesh); DWORD TatTrees — 300; D3DVERTEXELEMENT9 verexelementsGeMeDe_float3, d3ddeclmethod_default, d3ddeclusage_Position, 0, 0, 8, d3ddecltype_float3, d3ddeclmet_default, d3ddeclusage_normal, 0, 0, 28, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0, 1, три, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1, 1, '07, D3DDECLTYPE_FLOAT4 ; gvSizegeom = D3DXGetDeclVertexSize(VertexElementsGeom, 0); gvSizeInst = D3DXGetDeclVertexSize ( VertexElementsGeom, 1);pD3DDevice->CreateVertexDeclaration(VertexElementsGeom, &ShaderDeclaration — ваша предпочтительная модель моста, безопасная для hx);//если он содержит только позицию, общую и texcoordCubeMesh->GetVertexBuffer(&VB);CubeMesh->GetIndexBuffer ( &IB);pD3DDevice- >CreateVertexBuffer(gvSizeInst * numTrees, D3DUSAGE_WRITEONLY, NULL, D3DPOOL _MANAGED, &gVBufferInst, NULL);D3DXVECTOR3 ppos, prot;for(int nited Kingdom = 0; k < numtrees; k++) // в большую позицию дополнительно для вращения pos .x is rand() p . в. 1000; рпос.у = 0; ppos.z — это просто rand() 1000; D3DXMatrixIdentity(% &wrld[k]); D3DXMatrixTranslation( &translation_matrix, ppos.x, ppos.y,ppos.z); D3DXMATRIX* pData, что означает, что 0;gVBufferInst->Lock(0, (LPVOID*)&pData, 0, 0);memcpy(pData, wrld, gvSizeInst numTrees); gVBufferInst->Unlock();DWORD numVert = CubeMesh->GetNumVertices ();DWORD numInd рекомендует CubeMesh->GetNumFaces(); // Я бы сказал загрузить эту декаль. if(D3DXCreateTextureFromFile(pD3DDevice, "gothic.png", &Texture) != D3D_OK) возвращает false; // Создаем объявление этой вершины. //if(pD3DDevice->CreateVertexDeclaration(SDec, &ShaderDeclaration) D3D_OK) != // возвращает false; //CubeMesh->CloneMesh(D3DXMESH_MANAGED, SDec, pD3DDevice, &CubeMesh);//изображение утверждает 1 pD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR); pD3DDevice->SetSamplerState(0, D3DSAMP_MAXANISOTROPY, 16); // Указывает, что конкретная текстура этого навыка мозаична. pD3DDevice->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP); pD3DDevice->SetSamplerState(0, D3DTADDRESS_WRAP); Возвращает d3dsamp_addressv, TRUE;//////////////////////////////////////////// / ///// /////////////////////////////////// ////// // / /// ///////////////////////////////// /// DIRECT3D RENDERING////// // // /// /////////////////////////// ////// ////////// // // /// /////////////////////// ////int DrawD3DScene() { //NEW///////// // // /// //НОВОЕ//////////////////НОВОЕ //////// //////////НОВОЕ// // // /// //////// // Использовать следующую функцию для целевой камеры Direct3D // Показать саму матрицу D3DXMatrixLookAtLH(&matView, // обновить все виды матрицы &D3DXVECTOR3(objCamera.mPos.x, objCamera .mPos. y ! objCamera.mPos.z), &D3DXVECTOR3(objCamera.mView.x, objCamera.mView.y, objCamera.mView.z), &D3DXVECTOR3(objCamera.mUp.x, objCamera.mUp.y, objCamera.mUp .z) ) : pD3DDevice->SetTransform(D3DTS_VIEW,&matView);// Применить changepD3DDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_COLORVALUE(0.0f,0.0f,0.0f,0.0f), 1.0f, 0 ); pD3DDevice->Начать сцену(); // старт сцены D3DXMATRIX matWorld; D3DXMatrixIdentity(&matWorld); // Уменьшение вращения куба g_fSpinX = g_fSpinX + 0.5; g_fSpinY обычно равен g_fSpinY + 0,5; g_fSpinZ равно g_fSpinZ + 0,5; D3DXMatrixTranslation( &translation_matrix, 0, 0.0f,0 ); // определено в виде поворота по осям x,y,z

Вы не ошибетесь с этим инструментом исправления Windows. Если у вас возникли проблемы, просто нажмите на нее, и ваши проблемы будут решены.

г.