青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 505  文章 - 1034  trackbacks - 0
<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789


子曾經(jīng)曰過(guò):編程無(wú)他,唯手熟爾!

常用鏈接

留言簿(94)

隨筆分類(lèi)(649)

隨筆檔案(505)

相冊(cè)

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

積分與排名

  • 積分 - 918318
  • 排名 - 14

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

索性這幾個(gè)UI庫(kù)都試試 ^_^

截圖


重點(diǎn)
 1)取得句柄
      
pSystem->InitD3D((HWND)this->Handle.ToPointer());

 2)刷新畫(huà)面也跟Qt一樣靠定時(shí)器:拖個(gè)Timer(注意:默認(rèn)是Enabled:false,改成true),雙擊下,改下面的函數(shù)
     
    private: System::Void timerRender_Tick(System::Object^  sender, System::EventArgs^  e) {
                 
if (pSystem)
                 {
                     pSystem
->Render();
                 }
             }

       本來(lái)我是打Run的主意的
Application::Run(gcnew MainForm());
寫(xiě)個(gè)類(lèi)繼承自Application,然后override這個(gè)Run,在其中調(diào)用Render(),試了下,編譯出錯(cuò)
錯(cuò)誤    1    error C3246: “EditorApplication”: 無(wú)法從“System::Windows::Forms::Application”繼承,因?yàn)樗驯宦暶鳛?#8220;sealed”    f:\Practise\Practise_2005\WorldEditor\WorldEditor.cpp    9    
Application類(lèi)不能被繼承!!!

看了下xoyojank寫(xiě)的 原創(chuàng) DirectX in C++/CLI ,也用定時(shí)器好了。

3)項(xiàng)目配置: 公共語(yǔ)言運(yùn)行庫(kù)支持(/clr)    多線程調(diào)試 DLL (/MDd)


posted on 2008-11-26 23:35 七星重劍 閱讀(1230) 評(píng)論(6)  編輯 收藏 引用 所屬分類(lèi): PL--c/c++Game GraphicsIDE -- visual c++

FeedBack:
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2008-11-27 21:39 xoyojank
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2008-11-28 14:20 七星重劍
 
protected override void WndProc(ref Message m)

{

   
if (m.Msg == 0x000F)

   {

      Frame();

      
this.Invalidate();

   }

   
else

      
base.WndProc(ref m);

}

 
[DllImport("user32.dll")]

public static extern int SendNotifyMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); 



protected override void WndProc(ref Message m)

{

if (m.Msg == 0x000F)

{

   Frame();

   SendNotifyMessage(
this.Handle, 0x000F, IntPtr.Zero, IntPtr.Zero);

}

else

   
base.WndProc(ref m);

}

  回復(fù)  更多評(píng)論
  
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2008-11-28 14:21 七星重劍
這種方式是最好的?
  回復(fù)  更多評(píng)論
  
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2010-04-19 15:46 七星重劍
http://blogs.msdn.com/tmiller/archive/2005/05/05/415008.aspx

My last post on render loops (hopefully)..
The most common topic on my blog returns again. This time it will be brief as all I'm going to to do now is show you the render loop the June'05 SDK will be using. A coworker in another group came up with this markedly simple, yet deceptively effective loop for that groups projects. I liked it so much, i'm sharing it with everyone else. =)

The basic loop (slightly modified from his original version and the version in the new SDK for ease of reading):

public void MainLoop()
{
// Hook the application's idle event
System.Windows.Forms.Application.Idle += new EventHandler(OnApplicationIdle);
System.Windows.Forms.Application.Run(myForm);
}

private void OnApplicationIdle(object sender, EventArgs e)
{
while (AppStillIdle)
{
// Render a frame during idle time (no messages are waiting)
UpdateEnvironment();
Render3DEnvironment();
}
}

private bool AppStillIdle
{
get
{
NativeMethods.Message msg;
return !NativeMethods.PeekMessage(out msg, IntPtr.Zero, 0, 0, 0);
}
}


And the declarations for those two native methods members:

[StructLayout(LayoutKind.Sequential)]
public struct Message
{
public IntPtr hWnd;
public WindowMessage msg;
public IntPtr wParam;
public IntPtr lParam;
public uint time;
public System.Drawing.Point p;
}

[System.Security.SuppressUnmanagedCodeSecurity] // We won't use this maliciously
[DllImport("User32.dll", CharSet=CharSet.Auto)]
public static extern bool PeekMessage(out Message msg, IntPtr hWnd, uint messageFilterMin, uint messageFilterMax, uint flags);


------

Simple, elegant, effective. No extra allocations, no extra collections, it just works.. The Idle event fires when there's no messages in the queue, and then the handler keeps looping continuously until a message does appear, in which case it stops.. Once all the messages are handled, the idle event is fired again, and the process starts over.

  回復(fù)  更多評(píng)論
  
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2010-04-19 15:55 七星重劍
現(xiàn)在見(jiàn)到這種方式,把控件invalidate了讓其重新繪制。

Application.Idle += new EventHandler(form.Application_Idle);
Application.Run(form);

Invalidator.Shutdown();
MFramework.Shutdown();
}

private void Application_Idle(object sender, EventArgs e)
{
if (this.Visible &&
this.WindowState != FormWindowState.Minimized &&
Form.ActiveForm == this)
{
Invalidator.Instance.Update(true);
}
}

在控件的protected override void OnPaint(PaintEventArgs e)里繪制3D內(nèi)容。  回復(fù)  更多評(píng)論
  
# re: 每天30分鐘寫(xiě)Editor--(2)在CLR窗口里用D3D畫(huà)轉(zhuǎn)動(dòng)的三角形 2010-10-31 18:42 funcman
Void OnIdle(Object^ sender, EventArgs^ e) {
MSG msg;
while( !PeekMessage(&msg, 0, 0, 0, 0) ) {
Render();
}
}

//...

int main(array<System::String^>^ args) {
//...

EventHandler^ idle = gcnew EventHandler(OnIdle);
Application::Idle += idle;
Application::Run(gcnew MainForm());
Application::Idle -= idle;

return 0;
}  回復(fù)  更多評(píng)論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美伊人久久久久久久久影院 | 欧美日韩另类视频| 欧美在线欧美在线| 欧美日韩黄色一区二区| 牛牛影视久久网| 国外视频精品毛片| 亚洲欧美日韩国产一区二区| 亚洲午夜免费福利视频| 欧美国产日本在线| 免费欧美在线视频| 激情小说亚洲一区| 久久高清免费观看| 久久久国产精品亚洲一区| 国产精品乱人伦一区二区| 99国产精品视频免费观看| 99精品视频免费全部在线| 欧美插天视频在线播放| 亚洲福利视频免费观看| 伊甸园精品99久久久久久| 久久精品欧美| 免费视频一区| 亚洲第一毛片| 欧美阿v一级看视频| 欧美国产乱视频| 亚洲欧洲一区二区三区在线观看 | 欧美视频中文在线看| 亚洲美女网站| 亚洲网在线观看| 国产精品女人毛片| 亚洲欧美日韩国产综合| 久久精品国产免费| 依依成人综合视频| 免费成人在线视频网站| 亚洲人成7777| 亚洲视频碰碰| 国产欧美日韩麻豆91| 欧美中文字幕视频| 亚洲福利视频三区| 亚洲图片欧洲图片日韩av| 国产精品视频免费在线观看| 午夜精品视频一区| 久热re这里精品视频在线6| 亚洲国产精品嫩草影院| 欧美伦理视频网站| 亚洲在线成人精品| 欧美mv日韩mv国产网站| 日韩西西人体444www| 国产精品久久久久久久久久妞妞 | 久久久蜜桃精品| 亚洲国产一区在线观看| 先锋影音国产精品| 在线播放中文字幕一区| 欧美三级视频| 欧美在线观看网址综合| 亚洲三级网站| 久久久www成人免费无遮挡大片 | 亚洲国产欧美在线| 欧美一区二区三区啪啪| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久精品官网| 亚洲美女视频在线观看| 国产伦理一区| 欧美承认网站| 久久国产精品第一页| 亚洲免费电影在线| 玖玖玖国产精品| 亚洲中字在线| 日韩视频在线免费观看| 国产亚洲免费的视频看| 欧美日韩视频一区二区| 久久影视精品| 午夜亚洲视频| 在线亚洲欧美| 亚洲国产毛片完整版| 久久久精品999| 一区二区三区欧美在线观看| 亚洲第一综合天堂另类专| 国产精品日韩在线观看| 欧美理论大片| 美女性感视频久久久| 小黄鸭视频精品导航| 中文亚洲字幕| 亚洲欧洲精品一区二区精品久久久 | 久久成人免费电影| 在线亚洲精品| 亚洲精品一区二区三区在线观看| 国产一区二区久久| 国产精品亚发布| 国产精品白丝av嫩草影院 | 国产麻豆精品视频| 欧美三区美女| 欧美日韩一区二区免费视频| 麻豆成人精品| 久久综合网络一区二区| 久久精品九九| 久久久国产91| 久久九九免费视频| 久久国产视频网站| 欧美在线观看你懂的| 欧美一区=区| 欧美亚洲综合网| 欧美一区二区视频在线观看2020 | 99精品国产福利在线观看免费| 亚洲福利免费| 亚洲激情网站免费观看| 亚洲片在线观看| 亚洲精品在线观看免费| 亚洲久久一区| 亚洲特级毛片| 午夜一区二区三区在线观看 | 亚洲一区二区三区四区五区黄| 一区二区免费在线观看| 一区二区三区你懂的| 亚洲午夜小视频| 欧美亚洲一区| 久久阴道视频| 欧美日韩在线播放| 国产精品盗摄一区二区三区| 国产美女一区| 在线观看三级视频欧美| 亚洲日本成人| 亚洲一区二区三区四区五区黄| 性欧美xxxx大乳国产app| 久久精品亚洲| 欧美成人午夜激情| 亚洲精品在线视频观看| 亚洲一二三区在线| 久久国产精品毛片| 欧美高清在线播放| 欧美三级乱人伦电影| 国产一区二区三区直播精品电影| 亚洲国产cao| 亚洲亚洲精品三区日韩精品在线视频 | 久久综合九色九九| 欧美福利视频在线观看| 国产精品乱子久久久久| 精品成人久久| 亚洲图片在线观看| 久久一区亚洲| av成人动漫| 久久免费国产| 国产精品二区在线观看| 欲香欲色天天天综合和网| 在线视频中文亚洲| 老司机午夜精品视频在线观看| 日韩视频不卡中文| 久久久久久久久久久久久9999| 欧美精品一区二区三区很污很色的| 国产精品影音先锋| 日韩视频在线观看| 久久久久国产精品麻豆ai换脸| 亚洲人成在线播放| 久久国产日韩| 国产精品久久久久久久久久久久久 | 亚洲美女诱惑| 久久婷婷国产麻豆91天堂| 99日韩精品| 免费成人高清视频| 国产一区二区三区久久久| 亚洲视频成人| 亚洲欧洲综合另类| 久久影院午夜论| 国产亚洲精品久久久久婷婷瑜伽| 一区二区三区产品免费精品久久75| 久久婷婷人人澡人人喊人人爽| 夜夜嗨一区二区三区| 欧美国产欧美综合| 1000部国产精品成人观看 | 先锋影院在线亚洲| 日韩视频免费在线观看| 你懂的亚洲视频| 激情一区二区| 久久亚洲精品欧美| 午夜久久久久久久久久一区二区| 国产精品啊啊啊| 亚洲一区二区三区中文字幕在线| 亚洲国产人成综合网站| 麻豆91精品| 亚洲国产成人精品久久| 美腿丝袜亚洲色图| 久久久久久久综合色一本| 国产亚洲一区二区三区在线观看| 性欧美videos另类喷潮| 亚洲午夜精品国产| 国产精品久久久久毛片软件| 亚洲综合精品自拍| 亚洲一区在线视频| 国产精品一区久久久久| 西西人体一区二区| 午夜国产不卡在线观看视频| 国产欧美日韩综合一区在线播放| 亚洲欧美伊人| 性欧美大战久久久久久久久| 国产日韩综合| 久久三级视频| 久久综合影视| 日韩亚洲精品电影| 一本色道88久久加勒比精品 | 韩国精品主播一区二区在线观看| 久久国产免费|