Ignore:
Timestamp:
02/20/06 19:06:03 (19 years ago)
Author:
mattausch
Message:

added ogre dependencies and patched ogre sources

Location:
OGRE/trunk/ogre_changes/RenderSystems/Direct3D7
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • OGRE/trunk/ogre_changes/RenderSystems/Direct3D7/include/OgreD3D7RenderWindow.h

    r153 r657  
    119119        */ 
    120120        void writeContentsToFile(const String& filename); 
    121  
     121        // DirectDraw Methods 
     122                void createDDSurfaces(void); 
     123                void releaseDDSurfaces(void); 
     124                void restoreDDSurfaces(void); 
     125                void createDepthBuffer(void); 
    122126#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
    123127                uchar *getBufferContents(int &dimx, int &dimy); 
     
    159163        LPDIRECT3DDEVICE7 mlpD3DDevice; 
    160164 
    161         // DirectDraw Methods 
    162         void createDDSurfaces(void); 
    163         void releaseDDSurfaces(void); 
    164         void restoreDDSurfaces(void); 
    165         void createDepthBuffer(void); 
    166165 
    167166        // Method for dealing with resize / move & 3d library 
  • OGRE/trunk/ogre_changes/RenderSystems/Direct3D7/include/OgreD3D7Texture.h

    r154 r657  
    5353        LPDIRECTDRAWSURFACE7 getDDSurface(void); 
    5454 
    55         /// @copydoc Texture::createInternalResources 
    56         void createInternalResources(void); 
    57  
    5855                /// @copydoc Texture::getBuffer 
    5956                HardwarePixelBufferSharedPtr getBuffer(size_t face, size_t mipmap); 
     
    6360                static PixelFormat closestD3DXFormat( PixelFormat format ); 
    6461                static bool OgreFormat_to_DDPixelFormat( PixelFormat format, DDPIXELFORMAT & out ); 
     62 
     63                /// Restore this texture from a lost device 
     64                void restoreFromLostDevice(void); 
     65 
    6566    protected: 
    6667        IDirect3DDevice7 * mD3DDevice;       ///< A pointer to the Direct3D device. 
     
    7172                typedef std::vector<HardwarePixelBufferSharedPtr> SurfaceList; 
    7273                SurfaceList                                             mSurfaceList; 
     74                /// Are we restoring from a lost device? 
     75                bool mRestoring; 
     76 
    7377         
    7478 
    7579        /// @copydoc Resource::loadImpl 
    7680        void loadImpl(void); 
    77         /// @copydoc Resource::unloadImpl 
    78         void unloadImpl(void); 
     81                /// @copydoc Texture::createInternalResourcesImpl 
     82                void createInternalResourcesImpl(void); 
     83        /// @copydoc Resource::freeInternalResourcesImpl 
     84        void freeInternalResourcesImpl(void); 
    7985                 
    8086                void createSurface2D(void); 
  • OGRE/trunk/ogre_changes/RenderSystems/Direct3D7/src/OgreD3D7RenderWindow.cpp

    r153 r657  
    9696                break; 
    9797 
    98             case WM_MOVE: 
    99                 // Move messages need to be tracked to update the screen rects 
    100                 // used for blitting the backbuffer to the primary. 
    101                 if(win->mActive && win->mReady) 
    102                     win->windowMovedOrResized(); 
    103                 break; 
    104  
    10598            case WM_ENTERSIZEMOVE: 
    10699                // Prevent rendering while moving / sizing 
     
    113106                break; 
    114107 
     108            case WM_MOVE: 
    115109            case WM_SIZE: 
    116110                // Check to see if we are losing or gaining our window. Set the 
     
    391385    void D3D7RenderWindow::swapBuffers(bool waitForVSync) 
    392386    { 
     387                if (!mlpDDSFront) 
     388                        return; 
     389 
    393390        HRESULT hr; 
    394391        DWORD flags; 
     
    423420            { 
    424421                // Restore surfaces 
    425                 restoreDDSurfaces(); 
     422                //restoreDDSurfaces(); 
    426423            } 
    427424            else if (FAILED(hr)) 
     
    539536        ddscaps.dwCaps = DDSCAPS_ZBUFFER; 
    540537 
     538                if (!mlpDDSBack->IsLost()) 
     539                { 
    541540        LPDIRECTDRAWSURFACE7 zBufSurface; 
    542541 
     
    546545        zBufSurface->Release(); 
    547546        zBufSurface->Release(); 
     547                } 
    548548 
    549549        // Release std buffers 
     
    563563 
    564564            if( FAILED( hr ) ) 
     565                        { 
     566                                if (hr == DDERR_WRONGMODE) 
     567                                { 
     568                                        // Fullscreen exclusive mode problem 
     569                                        // Need to release & recreate 
     570                                        releaseDDSurfaces(); 
     571                                        createDDSurfaces(); 
     572                                        createDepthBuffer(); 
     573                                        return; 
     574                                } 
     575                                else 
     576                                { 
     577                                        char szBuffer[512]; 
     578                                        D3DXGetErrorString( hr, 512, szBuffer ); 
    565579                OGRE_EXCEPT(  
    566580                    Exception::ERR_INTERNAL_ERROR,  
    567                     "Error restoring lost primary surface.",  
     581                                                "Error restoring lost primary surface." + String(szBuffer),  
    568582                    "D3D7RenderWindow - restoreDDSurfaces" ); 
    569583        } 
     584                        } 
     585        } 
    570586 
    571587        if( mlpDDSBack->IsLost() ) 
     
    574590 
    575591            if( FAILED( hr ) ) 
     592                        { 
     593                                char szBuffer[512]; 
     594                                D3DXGetErrorString( hr, 512, szBuffer ); 
    576595                OGRE_EXCEPT(  
    577596                    Exception::ERR_INTERNAL_ERROR,  
    578                     "Error restoring lost back buffer surface.",  
     597                    "Error restoring lost back buffer surface." + String(szBuffer),  
    579598                    "D3D7RenderWindow - restoreDDSurfaces" ); 
    580599        } 
     600    } 
    581601    } 
    582602 
     
    592612        ClientToScreen( mHWnd, (POINT*)&rcCheck.left ); 
    593613        ClientToScreen( mHWnd, (POINT*)&rcCheck.right ); 
     614 
     615                if ((rcCheck.right - rcCheck.left) == 0 || 
     616                        (rcCheck.bottom - rcCheck.top) == 0) 
     617                { 
     618                        return; 
     619                } 
    594620 
    595621        // Has the window resized? If so, we need to recreate surfaces 
Note: See TracChangeset for help on using the changeset viewer.