الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعض الاسئله عن الدايركت اكس

مغلق
بدأه majnona_ في 20 أبريل 2005 · 13 رد · 1,901 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن كم سؤال حول الدايركت اكس ؟؟

وهي كالتالي :-

HRESULT InitD3D( HWND hWnd )
{
    // Create the D3D object.
    if( NULL == ( g_pD3D = Direct3DCreate9(D3D_SDK_VERSION ) ) )
        return E_FAIL;

    // Set up the structure used to create the D3DDevice
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof(d3dpp) );
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;


    // Create the D3DDevice
    if( FAILED( g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                      &d3dpp, &g_pd3dDevice ) ) )
    {
        return E_FAIL;
    }

    // Device state would normally be set here

    return S_OK;
}

1- ممكن شرح لل

ZeroMemory(&d3dpp, sizeof(d3dpp) );

فمثلا ما هو عملها وما هي برامتراتها؟؟

2-

وشرح ل

   d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

ما هو عمل هذين المتغيرين ؟؟

3- ما هو الربرامتر الرابع

  D3DCREATE_SOFTWARE_VERTEXPROCESSING,

عمله ؟؟

ومن هذا الكود بعض الاسئله ايضا

VOID Render()
{
        g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

      if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
    {
               g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
        g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
        g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 1 );
        // End the scene
        g_pd3dDevice->EndScene();
    }


    // Present the backbuffer contents to the display
    g_pd3dDevice->Present( 0, NULL, NULL, NULL );
}

1- شرح لل

 g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

و

g_pd3dDevice->Present( 0, NULL, NULL, NULL );

ما هو عمل الدالتان وما هما البرامتر الخاص بكل واحده؟؟

2- ما هو عمل هاتان الدالتين وما عمل البرامترات الخاص بكل داله ؟؟

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
        g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

ارجو منك التفاعل والاجابه على هذه الاسئله

وشكرا .................

#2

وعليكم السلام ورحمة الله.

اقتباس
ZeroMemory(&d3dpp, sizeof(d3dpp) );

بالنسبة لهذه الدالة .. ما لها دخل في الدايركت .. فهي من دوال api ولو ركزت قليلا باحد دوال api لعرفتها

وفائدتها من اسمها تصفير الذاكرة..يعني تهيئتها ومسحها..لعمل ما.. بالنسبة للبارمترات لست متاكد منها

ستاكد وارد عليك..

هذا اللي اعرف .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

معظم إجابات هذه الأسئلة ستجدها في SDK Documentation

#4
اقتباس
معظم إجابات هذه الأسئلة ستجدها في SDK Documentation

لن تجد شرحا أحسن منها

#5
ib_doom كتب:
معظم إجابات هذه الأسئلة ستجدها في SDK Documentation

انا اريد شرح منكم

فارجو ان لا تتباخلو

وشكرا ...........

#6

راجعت sdk ولكن حقيقة وجدته مبهم....

وهذا الذي ابعدني عن diretcx

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7
الشـمري كتب:
راجعت sdk ولكن حقيقة وجدته مبهم....

وهذا الذي ابعدني عن diretcx

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

نعم صحيح

sdk لغتها صعبه وفقط مناسبه للمحترفين كي يجعلوها مرجع لهم

ارجوا من باقي الاخوه المشاركه والاجابه.....

وشكرا ...

#8

السلام عليكم

ما هذا

اين الاعضاء في هذا المنتدى

اين انت يا gamedev4arab لماذا لم ترد على اسئلتي

ارجو من الكل التفاعل

لاني بحاجه الى تفاعلكم

وشكرا ............

#9

لايوجد احد متقن الدايركت اكس كاملة..... كلناالان نتعلم..... مثلك

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#10
الشـمري كتب:
لايوجد احد متقن الدايركت اكس كاملة..... كلناالان نتعلم..... مثلك

اخي الشمري هذا الكود هو اول وابسط كود دايركت اكس

ارجو التفاعل..

وشكرا ...............

#11

لو كنت اعرف كنت جاوبتك ..

حال تبحث عن اسماء هذه الدوال في google شوف يمكن تلاقي شرح عنها

#12

ZeroMemory(&d3dpp, sizeof(d3dpp) );

الدالة تقوم بتصفير جميع عناصر الهيكل D3dpp

مثلاً

struct Andre Ahmed

{

int age;

};

Andre Ahmed.age=10;

ZeroMemory(&Andre Ahmed, sizeof(Andre Ahmed) );

// So Andre Ahmed Memberes Structures == 0 !!

2. Swap Effect

محتاجة مقالة

3.

D3DCREATE_SOFTWARE_VERTEXPROCESSING,

يعني العمليات كلها هتتعمل في معالج لوحة الام" ابطىء" ... مش في معالج كارت الشاشة " الاسرع " ...

بتمسح الشاشة خالص من العمليات التي كانت مرسومة فيها " Desktop يعني " .. باللون D3DCOLOR_XRGB(0,0,255) ماكرو و بالداخل الالوان الثلاثة اخضر ـ احمر ـ ازرق

_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );

و

يعني انقل اللBack Buffer إلي Front Buffer يعني من الاخر ارسم :D .

g_pd3dDevice->Present( 0, NULL, NULL, NULL );

g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );

g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );

هنا بتوضع خصائص هيكل النقط Vertices Structure و بتوضع Felxible Vertex Format يعني تهيئة او فورمات النقط هيكون الاعلام D3DFVF_CUSTOMVERTEX

SetStreamSource يعني ضع مجري عمليات في الPipeline للعمليات علي النقط .. هنا استدعاء معالج كارت للشاشة لبدء المهمة في معالجة النقطة " يعني بخبره " ..

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#13
اقتباس
السلام عليكم

ما هذا

اين الاعضاء في هذا المنتدى

اين انت يا gamedev4arab لماذا لم ترد على اسئلتي

ارجو من الكل التفاعل

لاني بحاجه الى تفاعلكم

وشكرا ............

متأسف على التأخر :)

إن كنت مسر على ذلك فسأضيف شرحا كاملا لهذا المثال و سيكون ذلك خلال يومين على الأكثر بسبب إنشغال

و أنا متأسف

هذا الموضوع مغلق.

مواضيع مشابهة