亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? window.cpp

?? 3D游戲引擎 Programming Role-Playing Games with DirectX, 2nd Edition by Jim Adams
?? CPP
字號:
#include "Core_Global.h"
#include "Window.h"

cWindow::cWindow()
{
  // Clear class data
  m_Graphics = NULL;
  m_Font     = NULL;
  m_Text     = NULL;
  m_TextColor = 0xFFFFFFFF;
}

cWindow::~cWindow()
{
  Free();  // Free class data
}

BOOL cWindow::Create(cGraphics *Graphics, cFont *Font)
{
  Free();  // Free previous class data

  // Error checking
  if((m_Graphics = Graphics) == NULL || (m_Font = Font) == NULL)
    return FALSE;

  // Create new vertex buffer
  m_WindowVB.Create(m_Graphics, 11, WINDOWFVF, sizeof(sVertex));

  return TRUE; // Return success
}

BOOL cWindow::Free()
{
  m_WindowVB.Free();  // Free vertex buffer

  delete [] m_Text;   // Delete text buffer
  m_Text = NULL;

  return TRUE;
}

BOOL cWindow::SetText(char *Text, D3DCOLOR TextColor)
{
  // Delete previous text
  delete [] m_Text;
  m_Text = NULL;

  m_Text = strdup(Text);       // Copy text string
  m_TextColor = TextColor;     // Store text color

  return TRUE;
}

BOOL cWindow::Move(long XPos, long YPos,                      \
                   long Width, long Height,                   \
                   long TargetX, long TargetY,                \
                   D3DCOLOR BackColor)
{
  sVertex Verts[11];
  long i;

  // Save the coordinates and calculate height if needed
  m_XPos  = XPos;
  m_YPos  = YPos;
  m_Width = Width;
  if(!(m_Height = Height)) {
    RECT Rect;
    Rect.left   = XPos;
    Rect.top    = 0;
    Rect.right  = XPos + Width - 12;
    Rect.bottom = 1;

    m_Height = m_Font->GetFontCOM()->DrawText(NULL,m_Text, -1,     \
                &Rect, DT_CALCRECT | DT_WORDBREAK,            \
                0xFFFFFFFF) + 12;
  }

  // Clear the vertex data
  for(i=0;i<11;i++) {
    Verts[i].z = 0.0f;
    Verts[i].rhw = 1.0f;
    Verts[i].Diffuse = 0xFFFFFFFF;
  }

  // Setup the white outline
  Verts[0].x = (float)m_XPos;
  Verts[0].y = (float)m_YPos;
  Verts[1].x = (float)(m_XPos+m_Width);
  Verts[1].y = (float)m_YPos;
  Verts[2].x = (float)m_XPos;
  Verts[2].y = (float)(m_YPos+m_Height);
  Verts[3].x = (float)(m_XPos+m_Width);
  Verts[3].y = (float)(m_YPos+m_Height);

  // Setup the text window
  Verts[4].x = (float)m_XPos+2.0f;
  Verts[4].y = (float)m_YPos+2.0f;
  Verts[4].Diffuse = BackColor;
  Verts[5].x = (float)(m_XPos+m_Width)-2.0f;
  Verts[5].y = (float)m_YPos+2.0f;
  Verts[5].Diffuse = BackColor;
  Verts[6].x = (float)m_XPos+2.0f;
  Verts[6].y = (float)(m_YPos+m_Height)-2.0f;
  Verts[6].Diffuse = BackColor;
  Verts[7].x = (float)(m_XPos+m_Width)-2.0f;
  Verts[7].y = (float)(m_YPos+m_Height)-2.0f;
  Verts[7].Diffuse = BackColor;

  // Setup the target pointer
  if(TargetX != -1 && TargetY != -1) {
    m_DrawTarget = TRUE;

    if(TargetY < m_YPos) {
      Verts[8].x  = (float)TargetX;
      Verts[8].y  = (float)TargetY;
      Verts[9].x  = (float)(m_XPos+m_Width/2+10);
      Verts[9].y  = (float)m_YPos;
      Verts[10].x = (float)(m_XPos+m_Width/2-10);
      Verts[10].y = (float)m_YPos;
    } else {
      Verts[8].x  = (float)(m_XPos+m_Width/2-10);
      Verts[8].y  = (float)(m_YPos+m_Height);
      Verts[9].x  = (float)(m_XPos+m_Width/2+10);
      Verts[9].y  = (float)(m_YPos+m_Height);
      Verts[10].x = (float)TargetX;
      Verts[10].y = (float)TargetY;
    }
  } else {
    m_DrawTarget = FALSE;
  }

  m_WindowVB.Set(0,11,&Verts);  // Set the vertices
  
  return TRUE;
}

long cWindow::GetHeight()
{
  return m_Height;
}

BOOL cWindow::Render(char *Text, D3DCOLOR Color)
{
  // Error checking
  if(m_Graphics == NULL || m_Font == NULL)
    return FALSE;

  // Set rendering states
  m_Graphics->SetTexture(0, NULL);
  m_Graphics->EnableZBuffer(FALSE);

  // Draw window
  m_WindowVB.Render(0,2,D3DPT_TRIANGLESTRIP);
  m_WindowVB.Render(4,2,D3DPT_TRIANGLESTRIP);

  // Draw target pointer if needed
  if(m_DrawTarget)
    m_WindowVB.Render(8,1,D3DPT_TRIANGLELIST);

  // Only draw text if height > 12
  if(m_Height > 12) {
    // Draw the text
    if(Text == NULL)
      m_Font->Print(m_Text, m_XPos+6, m_YPos+6,               \
                            m_Width-12,m_Height-12,           \
                            m_TextColor, DT_WORDBREAK);
    else
      m_Font->Print(Text, m_XPos+6, m_YPos+6,                 \
                          m_Width-12,m_Height-12,             \
                          Color, DT_WORDBREAK);
  }
  
  return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区a| 久久久99久久精品欧美| 激情亚洲综合在线| 一区二区在线观看视频在线观看| 91精品国产高清一区二区三区 | 国产99久久久久久免费看农村| 亚洲男同性恋视频| 国产日韩欧美亚洲| 91麻豆精品91久久久久久清纯| 91在线观看美女| 国产剧情一区二区| 蜜臀精品一区二区三区在线观看| 综合分类小说区另类春色亚洲小说欧美| 欧美videossexotv100| 国产精品美女久久久久久久| 日韩欧美亚洲国产精品字幕久久久| 91在线你懂得| 成人福利视频在线| 国产一区二区三区在线观看精品| 日韩国产在线一| 亚洲激情校园春色| 中文字幕一区二区三区色视频| 精品国产1区二区| 日韩欧美卡一卡二| 日韩欧美亚洲国产精品字幕久久久 | 91精品婷婷国产综合久久竹菊| 色哟哟国产精品免费观看| 99视频有精品| av一区二区三区四区| 国产成人av一区二区三区在线| 看片网站欧美日韩| 久久精品国产99国产| 日韩精品久久理论片| 图片区小说区区亚洲影院| 亚洲综合在线视频| 亚洲成人自拍一区| 午夜欧美大尺度福利影院在线看| 亚洲国产一区视频| 亚洲成a人片在线不卡一二三区| 亚洲成人动漫在线免费观看| 亚洲图片欧美一区| 日日夜夜免费精品| 欧美aa在线视频| 美女久久久精品| 国产在线精品免费| 国产91高潮流白浆在线麻豆| 国产盗摄视频一区二区三区| 国产999精品久久| a亚洲天堂av| 欧美一a一片一级一片| 欧美吻胸吃奶大尺度电影| 7777精品伊人久久久大香线蕉完整版| 欧美精品久久99| 精品日本一线二线三线不卡| 久久一夜天堂av一区二区三区| 欧美极品美女视频| 亚洲欧美偷拍三级| 偷拍日韩校园综合在线| 青青草成人在线观看| 国产一区二区免费在线| 成人国产精品免费观看动漫| 色综合久久88色综合天天6| 在线视频欧美精品| 日韩西西人体444www| 久久精品亚洲一区二区三区浴池| 国产精品久久久久桃色tv| 亚洲综合一区二区三区| 麻豆国产一区二区| 99re热这里只有精品免费视频| 欧美性videosxxxxx| 日韩欧美一级特黄在线播放| 国产精品久久毛片a| 亚洲国产精品一区二区久久 | 亚洲天堂福利av| 亚洲线精品一区二区三区 | 91亚洲精品乱码久久久久久蜜桃| 欧美少妇一区二区| 久久久久久97三级| 亚洲成人免费视频| 国产suv精品一区二区三区| 在线观看亚洲a| 久久综合视频网| 亚洲一区二区欧美激情| 久久精品久久久精品美女| 91色综合久久久久婷婷| 精品日韩在线观看| 一区二区久久久| 国产成人精品免费看| 欧美视频一二三区| 国产精品嫩草影院av蜜臀| 日韩精彩视频在线观看| 99久久99久久久精品齐齐| 欧美不卡视频一区| 亚洲第四色夜色| jizz一区二区| 精品动漫一区二区三区在线观看| 亚洲精品成人悠悠色影视| 极品少妇一区二区| 欧美日韩性生活| 亚洲欧洲av一区二区三区久久| 狂野欧美性猛交blacked| 欧美自拍偷拍一区| 国产精品初高中害羞小美女文| 日本中文在线一区| 在线免费观看日本欧美| 中文欧美字幕免费| 另类小说一区二区三区| 欧美日韩免费一区二区三区 | 91小视频在线| 久久久精品tv| 精品一区二区免费看| 制服丝袜激情欧洲亚洲| 亚洲综合免费观看高清完整版 | 日本中文字幕不卡| 欧美在线制服丝袜| 一区免费观看视频| 成人中文字幕电影| 亚洲国产精品av| 国产成人鲁色资源国产91色综| 日韩欧美国产一区二区在线播放| 视频一区中文字幕国产| 欧美亚洲国产一卡| 一区二区三区丝袜| 色婷婷精品久久二区二区蜜臂av| 国产精品久久久久久久久免费樱桃 | 一本色道久久综合狠狠躁的推荐 | 精品少妇一区二区三区在线播放| 午夜成人免费电影| 在线成人小视频| 日日骚欧美日韩| 91精品国产麻豆国产自产在线 | 色欧美乱欧美15图片| 亚洲日本护士毛茸茸| 97久久人人超碰| 一区二区三区成人在线视频| 一本大道久久a久久精品综合| 国产精品久久久久久久久免费樱桃| 成人福利视频在线| 亚洲视频免费在线| 色视频一区二区| 天天综合网天天综合色| 欧美人体做爰大胆视频| 美女视频黄久久| 久久久精品日韩欧美| 粉嫩嫩av羞羞动漫久久久| 中文av一区特黄| 91蜜桃婷婷狠狠久久综合9色| 一区二区三区丝袜| 日韩一区二区在线观看视频 | 欧美专区在线观看一区| 午夜精品国产更新| 欧美xingq一区二区| 国产成人精品免费网站| 亚洲欧美经典视频| 欧美精品粉嫩高潮一区二区| 日本三级韩国三级欧美三级| 久久久综合精品| 99国产精品一区| 天天综合色天天综合色h| 日韩精品一区二区三区中文精品| 国产九色精品成人porny| 亚洲欧洲性图库| 欧美一级精品在线| 成人性生交大片免费看中文 | 成人免费在线播放视频| 欧美日韩色综合| 精品一区二区三区视频| 国产精品女主播在线观看| 91久久精品一区二区三| 老司机精品视频导航| 欧美激情综合五月色丁香小说| 色噜噜偷拍精品综合在线| 青青草精品视频| 亚洲欧洲在线观看av| 在线不卡中文字幕| www.成人在线| 久久激情综合网| 综合久久久久综合| 精品免费视频.| 色婷婷久久一区二区三区麻豆| 精品综合久久久久久8888| 亚洲品质自拍视频| 日韩欧美国产系列| 在线观看亚洲精品| 粉嫩av亚洲一区二区图片| 亚洲bt欧美bt精品777| 国产日韩欧美制服另类| 91精品国产手机| 99精品热视频| 国产在线播放一区| 亚洲成人午夜影院| 国产精品久久久久久久第一福利| 91精品国产色综合久久ai换脸 | 亚洲国产va精品久久久不卡综合 | 《视频一区视频二区| 精品成人a区在线观看| 欧美日韩国产综合一区二区三区 | 欧美探花视频资源| 波多野结衣亚洲| 国产一区在线观看麻豆|