Skip to content

Commit

Permalink
Set AutoGenMipMap for Direct3D7
Browse files Browse the repository at this point in the history
  • Loading branch information
elishacloud committed May 14, 2024
1 parent 7fd646a commit 62978ef
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Dllmain/BuildNo.rc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
#define BUILD_NUMBER 7016
#define BUILD_NUMBER 7017
3 changes: 1 addition & 2 deletions ddraw/IDirectDrawSurfaceX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3943,8 +3943,7 @@ HRESULT m_IDirectDrawSurfaceX::CreateD3d9Surface()
DWORD MipMapLevel = (SurfaceRequiresEmulation || MipMaps.empty()) ? 1 : MaxMipMapLevel;
HRESULT hr_t;
do {
surface.Tex.Usage = (MipMapLevel != 1 && (surfaceDesc2.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY) &&
(surfaceDesc2.ddsCaps.dwCaps2 & DDSCAPS2_HINTDYNAMIC)) ? D3DUSAGE_AUTOGENMIPMAP : 0;
surface.Tex.Usage = (MipMapLevel != 1 && (surfaceDesc2.ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY) && CreatedVersion == 7) ? D3DUSAGE_AUTOGENMIPMAP : 0;
hr_t = (*d3d9Device)->CreateTexture(Width, Height, MipMapLevel, surface.Tex.Usage, TextureFormat, surface.Tex.Pool, &surface.Texture, nullptr);
// Try failover format
if (FAILED(hr_t))
Expand Down
5 changes: 3 additions & 2 deletions ddraw/IDirectDrawSurfaceX.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ class m_IDirectDrawSurfaceX : public IUnknown, public AddressLookupTableDdrawObj
} SURFACECREATE;

// Convert to Direct3D9
const DWORD CreatedVersion;
CRITICAL_SECTION ddscs = {};
CRITICAL_SECTION ddlcs = {};
m_IDirectDrawX *ddrawParent = nullptr; // DirectDraw parent device
Expand Down Expand Up @@ -297,7 +298,7 @@ class m_IDirectDrawSurfaceX : public IUnknown, public AddressLookupTableDdrawObj


public:
m_IDirectDrawSurfaceX(IDirectDrawSurface7 *pOriginal, DWORD DirectXVersion) : ProxyInterface(pOriginal)
m_IDirectDrawSurfaceX(IDirectDrawSurface7 *pOriginal, DWORD DirectXVersion) : ProxyInterface(pOriginal), CreatedVersion(DirectXVersion)
{
ProxyDirectXVersion = GetGUIDVersion(ConvertREFIID(GetWrapperType(DirectXVersion)));

Expand All @@ -312,7 +313,7 @@ class m_IDirectDrawSurfaceX : public IUnknown, public AddressLookupTableDdrawObj

InitSurface(DirectXVersion);
}
m_IDirectDrawSurfaceX(m_IDirectDrawX *Interface, DWORD DirectXVersion, LPDDSURFACEDESC2 lpDDSurfaceDesc2) : ddrawParent(Interface)
m_IDirectDrawSurfaceX(m_IDirectDrawX *Interface, DWORD DirectXVersion, LPDDSURFACEDESC2 lpDDSurfaceDesc2) : ddrawParent(Interface), CreatedVersion(DirectXVersion)
{
ProxyDirectXVersion = 9;

Expand Down

0 comments on commit 62978ef

Please sign in to comment.