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

天行健 君子當(dāng)自強而不息

創(chuàng)建游戲內(nèi)核(7)【接口與實現(xiàn)分離版】

 

本篇是創(chuàng)建游戲內(nèi)核(6)【接口與實現(xiàn)分離版】的續(xù)篇,關(guān)于該內(nèi)核的細(xì)節(jié)說明請參考創(chuàng)建游戲內(nèi)核(7),這個版本主要是按照功能劃分模塊的思想,并嚴(yán)格按照接口與實現(xiàn)相分離的原則來寫的,沒有用面向?qū)ο蟮乃枷雭韺懀瑳]有繼承沒有多態(tài)。大家可以對比兩個版本,比較優(yōu)劣。

接口:

void set_material_diffuse(D3DMATERIAL9* material, 
                          unsigned 
char red, unsigned char green, unsigned char blue);

void get_material_diffuse(const D3DMATERIAL9* material, 
                          unsigned 
char* red, unsigned char* green, unsigned char* blue);

void set_material_ambient(D3DMATERIAL9* material,
                          unsigned 
char red, unsigned char green, unsigned char blue);

void get_material_ambient(const D3DMATERIAL9* material,
                          unsigned 
char* red, unsigned char* green, unsigned char* blue);

void set_material_specular(D3DMATERIAL9* material,
                           unsigned 
char red, unsigned char green, unsigned char blue);

void get_material_specular(const D3DMATERIAL9* material,
                           unsigned 
char* red, unsigned char* green, unsigned char* blue);

void set_material_emissive(D3DMATERIAL9* material,
                           unsigned 
char red, unsigned char green, unsigned char blue);

void get_material_emissive(const D3DMATERIAL9* material,
                           unsigned 
char *red, unsigned char *green, unsigned char *blue);

void set_material_power(D3DMATERIAL9* material, float power);
float get_material_power(const D3DMATERIAL9* material);

實現(xiàn):

//-------------------------------------------------------------------------
// set diffuse color.
//-------------------------------------------------------------------------
void set_material_diffuse(D3DMATERIAL9* material, 
                          unsigned 
char red, unsigned char green, unsigned char blue)
{
    material->Diffuse.r = red / 255.0f;
    material->Diffuse.g = green / 255.0f;
    material->Diffuse.b = blue / 255.0f;
}

//-------------------------------------------------------------------------
// Get diffuse color.
//-------------------------------------------------------------------------
void get_material_diffuse(const D3DMATERIAL9* material, 
                          unsigned 
char* red, unsigned char* green, unsigned char* blue)
{
    
if(red != NULL)
        *red = (unsigned 
char)(255.0 * material->Diffuse.r);

    
if(green != NULL)
        *green = (unsigned 
char)(255.0 * material->Diffuse.g);

    
if(blue != NULL)
        *blue = (unsigned 
char)(255.0 * material->Diffuse.b);
}

//-------------------------------------------------------------------------
// set ambient color.
//-------------------------------------------------------------------------
void set_material_ambient(D3DMATERIAL9* material,
                          unsigned 
char red, unsigned char green, unsigned char blue)
{
    material->Ambient.r = red / 255.0f;
    material->Ambient.g = green / 255.0f;
    material->Ambient.b = blue / 255.0f;
}

//-------------------------------------------------------------------------
// Get ambient color.
//-------------------------------------------------------------------------
void get_material_ambient(const D3DMATERIAL9* material,
                          unsigned 
char* red, unsigned char* green, unsigned char* blue)
{
    
if(red != NULL)
        *red = (unsigned 
char)(255.0f * material->Ambient.r);

    
if(green != NULL)
        *green = (unsigned 
char)(255.0f * material->Ambient.g);

    
if(blue != NULL)
        *blue = (unsigned 
char)(255.0f * material->Ambient.b);
}

//-------------------------------------------------------------------------
// set specular color.
//-------------------------------------------------------------------------
void set_material_specular(D3DMATERIAL9* material,
                           unsigned 
char red, unsigned char green, unsigned char blue)
{
    material->Specular.r = red / 255.0f;
    material->Specular.g = green / 255.0f;
    material->Specular.b = blue / 255.0f;
}

//-------------------------------------------------------------------------
// Get specular color.
//-------------------------------------------------------------------------
void get_material_specular(const D3DMATERIAL9* material,
                           unsigned 
char* red, unsigned char* green, unsigned char* blue)
{
    
if(red != NULL)
        *red = (unsigned 
char)(255.0 * material->Specular.r);

    
if(green != NULL)
        *green = (unsigned 
char)(255.0 * material->Specular.g);

    
if(blue != NULL)
        *blue = (unsigned 
char)(255.0 * material->Specular.b);
}

//-------------------------------------------------------------------------
// set emissive color.
//-------------------------------------------------------------------------
void set_material_emissive(D3DMATERIAL9* material,
                           unsigned 
char red, unsigned char green, unsigned char blue)
{
    material->Emissive.r = red / 255.0f;
    material->Emissive.g = green / 255.0f;
    material->Emissive.b = blue / 255.0f;
}

//-------------------------------------------------------------------------
// Get emmisive color.
//-------------------------------------------------------------------------
void get_material_emissive(const D3DMATERIAL9* material,
                           unsigned 
char *red, unsigned char *green, unsigned char *blue)
{
    
if(red != NULL)
        *red = (unsigned 
char)(255.0 * material->Emissive.r);

    
if(green != NULL)
        *green = (unsigned 
char)(255.0 * material->Emissive.g);

    
if(blue != NULL)
        *blue = (unsigned 
char)(255.0 * material->Emissive.b);
}

//-------------------------------------------------------------------------
// set power for material, which specifying the sharpness of specular 
// highlights.
//-------------------------------------------------------------------------
void set_material_power(D3DMATERIAL9* material, float power)
{
    material->Power = power;
}

//-------------------------------------------------------------------------
// Get power for material, which specifying the sharpness of specular 
// highlights.
//-------------------------------------------------------------------------
float get_material_power(const D3DMATERIAL9* material)
{
    
return material->Power;
}

 

posted on 2007-10-03 00:55 lovedday 閱讀(201) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


公告

導(dǎo)航

統(tǒng)計

常用鏈接

隨筆分類(178)

3D游戲編程相關(guān)鏈接

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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国产麻豆精品| 一区二区三区高清在线| 欧美体内谢she精2性欧美| 亚洲欧美一区二区激情| 亚洲综合三区| 在线观看欧美激情| 亚洲精品国产精品乱码不99按摩| 欧美成人精品激情在线观看| 99这里只有精品| 亚洲欧美日韩天堂一区二区| 国内精品视频一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品日日做人人爱| 欧美在线一二三| 麻豆成人在线| 亚洲男女自偷自拍| 久久亚洲欧美国产精品乐播| 一本色道久久99精品综合 | 正在播放欧美视频| 国内自拍视频一区二区三区| 欧美黑人国产人伦爽爽爽| 欧美国产激情二区三区| 午夜精品一区二区三区四区 | 久久手机免费观看| 中文在线资源观看视频网站免费不卡| 亚洲伊人观看| 亚洲剧情一区二区| 性色av一区二区三区红粉影视| 91久久综合| 久久成人精品无人区| 亚洲一区二区成人| 免费的成人av| 久久精品国产精品| 欧美日韩性视频在线| 免费成人毛片| 国产精品美女在线观看| 最近中文字幕mv在线一区二区三区四区 | 亚洲日本黄色| 在线成人h网| 午夜电影亚洲| 亚洲图中文字幕| 欧美电影打屁股sp| 免费成人av在线| 国产日韩精品久久| 亚洲一区二区三区精品动漫| 亚洲美女在线国产| 欧美成人一区二区三区片免费 | 91久久香蕉国产日韩欧美9色| 亚洲欧美日韩国产综合| 亚洲视频自拍偷拍| 欧美精品乱人伦久久久久久| 欧美插天视频在线播放| 激情欧美一区二区三区在线观看 | 亚洲国产综合在线| 亚洲国产成人在线| 乱中年女人伦av一区二区| 久久精品综合网| 国产日韩在线视频| 亚洲女与黑人做爰| 欧美一区二区三区另类| 国产精品综合网站| 亚洲欧美日韩国产精品| 欧美一区国产一区| 国产午夜精品福利| 欧美一级免费视频| 久久久久国产精品一区| 国产综合亚洲精品一区二| 欧美一区二区三区电影在线观看| 性欧美办公室18xxxxhd| 国产伦精品一区二区三区四区免费| 夜夜嗨av一区二区三区四区| 亚洲影院免费观看| 国产欧美日韩激情| 欧美综合国产精品久久丁香| 久久视频免费观看| 亚洲黄色一区| 欧美日韩日韩| 亚洲欧美激情四射在线日| 久久蜜桃香蕉精品一区二区三区| 狠狠干综合网| 欧美成年人视频| 99在线精品观看| 欧美影院在线播放| 在线观看亚洲一区| 欧美另类高清视频在线| 亚洲一区在线观看视频| 久久综合给合| 亚洲免费激情| 国产精品一区久久久久| 久久免费的精品国产v∧| 亚洲精品久久久久久久久久久久| 国产精品99久久久久久有的能看| 国产免费观看久久| 欧美成人免费全部| 亚洲一区二区三区四区五区午夜| 久久理论片午夜琪琪电影网| 亚洲精品久久久久久一区二区| 欧美性大战久久久久久久| 欧美一区亚洲| 亚洲人体一区| 久久综合99re88久久爱| 亚洲一区二区三区精品动漫| 一区二区三区在线看| 国产精品成人一区二区三区夜夜夜 | 久久精品亚洲乱码伦伦中文| 亚洲激情网站| 国产日韩综合一区二区性色av| 欧美成人dvd在线视频| 亚洲综合欧美日韩| 亚洲人成免费| 久久视频在线看| 午夜精品久久久久久久久久久| 亚洲国产专区| 国产在线高清精品| 国产精品国产亚洲精品看不卡15| 噜噜噜久久亚洲精品国产品小说| 亚洲天堂网在线观看| 亚洲国产精品久久久久| 久久综合福利| 久久精品国产免费| 亚洲在线观看免费| 99国产一区二区三精品乱码| 亚洲成色www久久网站| 国产色视频一区| 国产精品日日摸夜夜添夜夜av| 欧美伦理视频网站| 麻豆精品精品国产自在97香蕉| 欧美在线播放| 亚洲综合视频在线| 亚洲调教视频在线观看| 亚洲麻豆av| 亚洲精品乱码久久久久久| 你懂的国产精品| 欧美成人自拍| 欧美成人a视频| 亚洲国产精品t66y| 久久久国产视频91| 久久精品最新地址| 久久高清免费观看| 久久久精品一区| 久久九九99| 老司机午夜精品视频在线观看| 欧美一区二区黄色| 亚欧美中日韩视频| 久久精品首页| 免费成人你懂的| 亚洲高清毛片| 亚洲人成网站777色婷婷| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品福利久久久| 欧美无乱码久久久免费午夜一区| 欧美另类在线播放| 欧美婷婷在线| 国产欧美一区二区三区在线老狼 | 欧美 亚欧 日韩视频在线| 六十路精品视频| 亚洲国产精品ⅴa在线观看| 麻豆成人综合网| 欧美激情第五页| 亚洲国产日韩综合一区| 9l视频自拍蝌蚪9l视频成人| 中文成人激情娱乐网| 午夜精品影院| 鲁大师成人一区二区三区 | 亚洲欧美国产va在线影院| 欧美一区二区在线播放| 玖玖视频精品| 国产精品国产成人国产三级| 国产视频不卡| 亚洲精品日产精品乱码不卡| 亚洲自拍电影| 另类成人小视频在线| 99精品热视频只有精品10| 欧美在线日韩在线| 欧美激情亚洲| 国产中文一区| 宅男在线国产精品| 久久久久免费视频| 亚洲伦理精品| 久久久噜噜噜久久中文字免| 欧美女同在线视频| 国产主播一区| 亚洲一区国产精品| 欧美韩日一区二区三区| 亚洲欧美日韩精品在线| 欧美国产精品久久| 国产综合久久久久久| 一区二区三区高清在线 | 亚洲欧洲日产国产综合网| 午夜精品区一区二区三| 亚洲高清视频在线观看| 欧美一区二区三区日韩视频| 欧美日韩一区在线播放| 亚洲韩国日本中文字幕| 久久国产黑丝| 亚洲午夜免费福利视频|