Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ID3DXSprite, killmeplz.. 
:(
    Опции темы
Roont
  Дата 31.8.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.8.2009

Репутация: нет
Всего: нет



вопщем делаю вроде все по науке, он картинки нет..(( 


Код

HRESULT MyDirectX::Init( HWND hWnd )
{
    ZeroMemory(&m_Didect3DParametr, sizeof (m_Didect3DParametr) );
    ZeroMemory(&m_DisplayMode, sizeof m_DisplayMode);

    if ( NULL == (m_pDirect3D = Direct3DCreate9(D3D_SDK_VERSION) ) )
        return E_FAIL;

    
    if ( FAILED(m_pDirect3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &m_DisplayMode) ) )
        return E_FAIL;


    m_Didect3DParametr.Windowed = TRUE;
    m_Didect3DParametr.SwapEffect = D3DSWAPEFFECT_DISCARD;
    m_Didect3DParametr.BackBufferFormat = D3DFMT_X8R8G8B8;
    m_Didect3DParametr.AutoDepthStencilFormat = D3DFMT_D16;
    m_Didect3DParametr.EnableAutoDepthStencil = TRUE;

    if ( FAILED( m_pDirect3D->CreateDevice(
        D3DADAPTER_DEFAULT
        ,    D3DDEVTYPE_HAL
        ,    hWnd
        ,    D3DCREATE_SOFTWARE_VERTEXPROCESSING
        ,    &m_Didect3DParametr
        ,    &m_pDirect3DDevice
        ))
    )
    return E_FAIL;

    return S_OK;
}

void MyDirectX::RenderItem( wchar_t* tex, RECT rect, D3DXVECTOR3 pos )
{
    RItem* ri = new RItem;
    
    ri->tex = new wchar_t [ wcslen(tex) + 1];
    wcscpy_s(ri->tex, wcslen(tex) + 1, tex);
    ri->rect = rect;
    ri->pos = pos;

    m_RenderItems.Push( ri );
}

void MyDirectX::Rendering()
{
    m_pDirect3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 105,200, 125 ), 1.0, 0 );
    m_pDirect3DDevice->BeginScene();
    {
        Iterat( m_RenderItems )
        {
            if ( m_RenderItems[i]->tex )
            {

                LPDIRECT3DTEXTURE9 pTexture;    
                HRESULT err = D3DXCreateTextureFromFile(
                    m_pDirect3DDevice, 
                    m_RenderItems[i]->tex, 
                    &pTexture );

                LPD3DXSPRITE pSprite = 0;
                D3DXCreateSprite(m_pDirect3DDevice, &pSprite);
            
                if ( !FAILED( pSprite->Begin( D3DXSPRITE_ALPHABLEND| D3DXSPRITE_SORT_DEPTH_BACKTOFRONT ) ) )
                {    
                    pSprite->Draw( pTexture, NULL, NULL, &m_RenderItems[i]->pos, 0xFFFFFFFF );
                    pSprite->End();
                }

                pSprite->Release();
                pTexture->Release();
            }
        }
    }    
    m_pDirect3DDevice->EndScene();
    m_pDirect3DDevice->Present(0,0,0,0);
}



m_RenderItems - динамический стек с путями до тгашки, ректами( RECT ) и позишнами.( D3DXVECTOR3 ) Пополняется по клику..
в результате имеем зеленое пустое окно.. молча(никто не падает и не вопит что ему чего то не додали..))..   

Может нужно что то в Init() при создании девайса что то написать?
скажите, плз, где я дурак?...%)

Это сообщение отредактировал(а) Roont - 3.9.2009, 19:20
PM MAIL   Вверх
BorisVorontsov
Дата 4.9.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Позиция адекватная? Какие параметры альфа-смешивания задал?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
Roont
Дата 15.9.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 31.8.2009

Репутация: нет
Всего: нет



теперь перед CreatetextureFromFileEx() делаю 
Код

            UINT pWidth, pHeight, pNumMipLevels;
            D3DFORMAT pFormat;
            
            HRESULT errr = D3DXCheckTextureRequirements(
                m_pDirect3DDevice, 
                &pWidth, 
                &pHeight, 
                &pNumMipLevels, 
                0, 
                &pFormat, 
                D3DPOOL_DEFAULT);



один фиг в: 
Код

            LPD3DXSPRITE pSprite;
            D3DXCreateSprite(m_pDirect3DDevice, &pSprite);
            if ( !FAILED( pSprite->Begin( 
                D3DXSPRITE_OBJECTSPACE | 
                D3DXSPRITE_BILLBOARD | 
                D3DXSPRITE_SORT_TEXTURE | 
                D3DXSPRITE_DO_NOT_ADDREF_TEXTURE
                ) ))
                        {...}

->Begin падает с "Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
"

что не так?  smile  smile  smile  smile 

Это сообщение отредактировал(а) Roont - 15.9.2009, 10:25
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0671 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.