#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif
#ifndef DIRECT3DWIDGET_H #define DIRECT3DWIDGET_H #include <QtGui/QWidget> #include <d3d9.h> #include <atlbase.h> class Direct3DWidget : public QWidget { Q_OBJECT CComPtr < IDirect3D9 > m_pD3D ; CComPtr < IDirect3DDevice9 > m_pd3dDevice ; public : Direct3DWidget ( QWidget * parent = 0 ) ; ~Direct3DWidget ( ) ; bool InitDirect3D ( ) ; public slots : bool Rendering ( ) ; private : void paintEvent ( QPaintEvent * pEvent ) ; } ; #endif
#include "Direct3DWidget.h"Direct3DWidget :: Direct3DWidget ( QWidget * parent / * = 0 * / ) : QWidget ( parent ){setAttribute ( Qt :: WA_PaintOnScreen ) ;}Direct3DWidget :: 〜Direct3DWidget ( ){}bool Direct3DWidget :: InitDirect3D ( ){m_pD3D = Direct3DCreate9 ( D3D_SDK_VERSION ) ;if ( ! m_pD3D )falseを返します。D3DPRESENT_PARAMETERS d3dpp = { 0 } ;d3dpp。 ウィンドウ化 = TRUE ;d3dpp。 SwapEffect = D3DSWAPEFFECT_DISCARD ;d3dpp。 BackBufferFormat = D3DFMT_UNKNOWN ;d3dpp。 FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT ;d3dpp。 PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE ;d3dpp。 SwapEffect = D3DSWAPEFFECT_DISCARD ;d3dpp。 EnableAutoDepthStencil = TRUE ;d3dpp。 AutoDepthStencilFormat = D3DFMT_D16 ;HRESULT hrResult = m_pD3D- > CreateDevice ( D3DADAPTER_DEFAULT 、 D3DDEVTYPE_HAL 、 winId ( ) 、D3DCREATE_HARDWARE_VERTEXPROCESSING 、& d3dpp 、 & m_pd3dDevice ) ;if (失敗( hrResult ) )falseを返します。trueを返します。}bool Direct3DWidget :: レンダリング ( ){if ( m_pd3dDevice == 0 )falseを返します。m_pd3dDevice- > Clear ( 0、0 、 D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER 、 D3DCOLOR_XRGB ( 255、255、0 ) 、 1.0f 、 0 ) ;if ( SUCCEEDED ( m_pd3dDevice- > BeginScene ( ) ) )){m_pd3dDevice- > EndScene ( ) ;}m_pd3dDevice- > Present ( 0、0、0、0 ) ;trueを返します。}void Direct3DWidget :: paintEvent ( QPaintEvent * pEvent ){Q_UNUSED ( pEvent ) ;レンダリング( ) ;}
#include <QtGui / QWidget>#include <QtGui / QApplication>#include <QtGui / QHBoxLayout>#include "Direct3DWidget.h"int main ( int argc 、 char * argv [ ] ){// ------------------------------初期化を開始//追加のパラメータ、カンマで区切られたパラメータを追加するだけstd :: string aAdditionalParameters [ ] = { "-direct3d" } ;int iRealArgumentAmount = argc + sizeof ( aAdditionalParameters ) / sizeof ( std :: string ) ;//このダブルポインターには、argvからのパラメーターが含まれます。//このアプリケーションに必要な静的パラメータchar ** pArguments = new char * [ iRealArgumentAmount ] ;//すべてのソース(コマンドラインから)パラメーターをコピーしますfor ( int i = 0 ; i < argc ; ++ i ){* ( pArguments + i ) = new char [ strlen ( argv [ i ] ) + 1 ] ;strcpy ( * ( pArguments + i ) 、 argv [ i ] ) ;}//追加するパラメーターを追加しますfor ( int i = argc 、 j = 0 ; i < iRealArgumentAmount ; ++ i 、 ++ j ){* ( pArguments + i ) = new char [ aAdditionalParameters [ j ] 。 サイズ ( ) + 1 ] ;strcpy ( * ( pArguments + i ) 、 aAdditionalParameters [ j ] .c_str ( ) ) ;}QApplication xApplication ( iRealArgumentAmount 、 pArguments ) ;for ( int i = 0 ; i < iRealArgumentAmount ; ++ i )delete [ ] * ( pArguments + i ) ;delete [ ] pArguments ;// --------------------------------初期化完了QWidget xMainWindow ;Direct3DWidget * xScene = 新しい Direct3DWidget ( & xMainWindow ) ;QHBoxLayout * xMainLayout = new QHBoxLayout ;xMainLayout- > addWidget ( xScene ) ;xMainWindow。 setLayout ( xMainLayout ) ;//ウィジェットがウィンドウに埋め込まれた後にDirect3dを初期化することが重要ですxScene- > InitDirect3D ( ) ;xMainWindow。 show ( ) ;xApplicationを返します。 exec ( ) ;}
void Direct3DWidget :: paintEvent ( QPaintEvent * pEvent ){Q_UNUSED ( pEvent ) ;//レンダリング();}
...//ウィジェットがウィンドウに埋め込まれた後にDirect3dを初期化することが重要ですxScene- > InitDirect3D ( ) ;xMainWindow。 show ( ) ;QTimer xTimer ;QWidget :: connect ( & xTimer 、 SIGNAL ( timeout ( ) )) 、 xScene 、 SLOT ( Rendering ( ) ) )) ;xTimer。 開始 ( 100 ) ;xApplicationを返します。 exec ( ) ;...
Source: https://habr.com/ru/post/J62051/More articles:すべてのCMSが同等に優れているわけではありません。サイトをテストするための便利なツールUserJS。 パート4:libretkiフレームワーク美しい漫画、これ以上ウィキペディアの英語セクションでは、金銭のために記事を書くことの許容性について説明しています試験について考えるすべてノキアは自己充電デバイスを教えますオリジナルデザインの記念品USBフラッシュドライブの製造(質問)USBミニ電子レンジ手遅れになる前に地球を救うAll Articles