# HG changeset patch
# User a.parshin
# Date 1412952125 -10800
# Node ID c7264ab7132f56a6fa1dd40a3b455ac990e8da8e
# Parent c532d52420557bdaf6da6ad1f3a4ee28daf5f0b2
Main menu rendered using d3d11
diff -r c532d5242055 -r c7264ab7132f Build/Visual Studio 2012/World of Might and Magic.vcxproj
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj Thu Oct 09 23:33:36 2014 +0300
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj Fri Oct 10 17:42:05 2014 +0300
@@ -502,6 +502,7 @@
+
diff -r c532d5242055 -r c7264ab7132f Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters
--- a/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Thu Oct 09 23:33:36 2014 +0300
+++ b/Build/Visual Studio 2012/World of Might and Magic.vcxproj.filters Fri Oct 10 17:42:05 2014 +0300
@@ -106,6 +106,9 @@
{20adc48e-74d5-48a4-a357-a8b133eef51f}
+
+ {740b8731-e3ff-44cb-b6c8-85a64c7cbfc0}
+
@@ -1356,6 +1359,9 @@
GUI\NewUI\Core
+
+ Engine\Graphics\Shaders
+
diff -r c532d5242055 -r c7264ab7132f Engine/ErrorHandling.h
--- a/Engine/ErrorHandling.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/ErrorHandling.h Fri Oct 10 17:42:05 2014 +0300
@@ -1,8 +1,8 @@
#define _CRT_NON_CONFORMING_SWPRINTFS
#pragma once
-#define Error(format, ...) Error_impl_(__FILE__, __FUNCTION__, __LINE__, format, __VA_ARGS__)
-#define Assert(condition, ...) Assert_impl_(__FILE__, __FUNCTION__, __LINE__, condition, #condition, __VA_ARGS__)
+#define Error(format, ...) do {Error_impl_(__FILE__, __FUNCTION__, __LINE__, format, __VA_ARGS__); __debugbreak(); exit(0); } while (0)
+#define Assert(condition, ...) Assert_impl_(__FILE__, __FUNCTION__, __LINE__, condition, #condition, __VA_ARGS__)
@@ -27,11 +27,6 @@
MsgBox(msg, L"Error");
}
va_end(va);
-
- #ifndef NODEBUG
- __debugbreak();
- #endif
- exit(0);
}
diff -r c532d5242055 -r c7264ab7132f Engine/Game.cpp
--- a/Engine/Game.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Game.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -4483,7 +4483,7 @@
void sub_42FBDD()
{
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
- pRenderer->DrawTextureTransparent(pBtn_YES->uX, pBtn_YES->uY, pBtn_YES->pTextures[0]);
+ pRenderer->DrawTextureIndexedAlpha(pBtn_YES->uX, pBtn_YES->uY, pBtn_YES->pTextures[0]);
pRenderer->Present();
}
@@ -4491,7 +4491,7 @@
void CloseWindowBackground()
{
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, -2, 0, -1, 0, 0, 0, 0);
- pRenderer->DrawTextureTransparent(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY, pBtn_ExitCancel->pTextures[0]);
+ pRenderer->DrawTextureIndexedAlpha(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY, pBtn_ExitCancel->pTextures[0]);
pRenderer->Present();
}
@@ -5466,7 +5466,7 @@
dword_6BE364_game_settings_1 |= GAME_SETTINGS_4000;
pGame->InitializeGammaController();
SecondaryInitialization();
- pRenderer->SetRasterClipRect(0, 0, window->GetWidth() - 1, window->GetHeight() - 1);
+ //pRenderer->SetRasterClipRect(0, 0, window->GetWidth() - 1, window->GetHeight() - 1);
FinalInitialization();
//Ritor1: include
@@ -5837,7 +5837,7 @@
}
pRenderer->BeginScene();
- pRenderer->DrawTextureRGB(0, 0, &pTexture_PCX);
+ pRenderer->DrawTextureNew(0, 0, &pTexture_PCX);
GUI_MainMenuMessageProc();
GUI_UpdateWindows();
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/IRender.h
--- a/Engine/Graphics/IRender.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/IRender.h Fri Oct 10 17:42:05 2014 +0300
@@ -64,8 +64,8 @@
virtual void EndScene() = 0;
virtual void ScreenFade(unsigned int color, float t) = 0;
- virtual void SetTextureClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW) = 0;
- virtual void ResetTextureClipRect() = 0;
+ virtual void SetUIClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW) = 0;
+ virtual void ResetUIClipRect() = 0;
virtual void CreditsTextureScroll(unsigned int pX, unsigned int pY, int move_X, int move_Y, RGBTexture *pTexture) = 0;
virtual void DrawTextureNew(float u, float v, struct Texture *) = 0;
@@ -75,7 +75,7 @@
virtual void ZBuffer_Fill_2(signed int a2, signed int a3, struct Texture *pTexture, int a5) = 0;
virtual void DrawMaskToZBuffer(signed int uOutX, unsigned int uOutY, struct Texture *pTexture, int zVal) = 0;
- virtual void DrawTextureTransparent(unsigned int uX, unsigned int uY, struct Texture *pTexture) = 0;
+ virtual void DrawTextureIndexedAlpha(unsigned int uX, unsigned int uY, struct Texture *pTexture) = 0;
virtual void DrawAura(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8) = 0;
virtual void _4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8) = 0;
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Overlays.cpp
--- a/Engine/Graphics/Overlays.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Overlays.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -106,7 +106,7 @@
//if ( pRenderer->pRenderD3D )
pRenderer->DrawTextureIndexed(394, 288, &pIcons_LOD->pTextures[frame->uTextureID]);
/*else
- pRenderer->DrawTextureTransparent(0x18Au, 0x120u, v7);*/
+ pRenderer->DrawTextureIndexedAlpha(0x18Au, 0x120u, v7);*/
if ( dword_50C994 < dword_50C998_turnbased_icon_1A )
{
dword_50C994 += pEventTimer->uTimeElapsed;
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Render.cpp
--- a/Engine/Graphics/Render.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Render.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -6003,8 +6003,9 @@
stru350 Dst; // [sp+Ch] [bp-F8h]@12
HWLTexture* pHWLTexture = pD3DBitmaps.LoadTexture(pName, bMipMaps);
- if ( pHWLTexture )
- {
+ if (!pHWLTexture)
+ return false;
+
bMipMaps = !strncmp(pName, "HDWTR", 5);
if ( !pRenderD3D->CreateTexture(pHWLTexture->uWidth, pHWLTexture->uHeight, pOutSurface, pOutTexture, true,
bMipMaps, uMinDeviceTextureDim) )
@@ -6083,8 +6084,7 @@
delete [] pHWLTexture->pPixels;
delete pHWLTexture;
return true;
- }
- return false;
+
}
//----- (004A5048) --------------------------------------------------------
@@ -6368,7 +6368,7 @@
}
//----- (004A5B81) --------------------------------------------------------
-void Render::SetTextureClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW)
+void Render::SetUIClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW)
{
this->bClip = 1;
this->uClipX = uX;
@@ -6378,7 +6378,7 @@
}
//----- (004A5BB6) --------------------------------------------------------
-void Render::ResetTextureClipRect()
+void Render::ResetUIClipRect()
{
this->bClip = 1;
this->uClipX = 0;
@@ -7475,7 +7475,7 @@
}
//----- (004A6274) --------------------------------------------------------
-void Render::DrawTextureTransparent(unsigned int uX, unsigned int uY, Texture *pTexture)
+void Render::DrawTextureIndexedAlpha(unsigned int uX, unsigned int uY, Texture *pTexture)
{
int uHeight; // ebx@4
unsigned int v11; // edx@9
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Render.h
--- a/Engine/Graphics/Render.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Render.h Fri Oct 10 17:42:05 2014 +0300
@@ -248,8 +248,8 @@
virtual void EndScene();
virtual void ScreenFade(unsigned int color, float t);
- virtual void SetTextureClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW);
- virtual void ResetTextureClipRect();
+ virtual void SetUIClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW);
+ virtual void ResetUIClipRect();
virtual void CreditsTextureScroll(unsigned int pX, unsigned int pY, int move_X, int move_Y, RGBTexture *pTexture);
virtual void DrawTextureNew(float u, float v, struct Texture *);
@@ -259,7 +259,7 @@
virtual void ZBuffer_Fill_2(signed int a2, signed int a3, struct Texture *pTexture, int a5);
virtual void DrawMaskToZBuffer(signed int uOutX, unsigned int uOutY, struct Texture *pTexture, int zVal);
- virtual void DrawTextureTransparent(unsigned int uX, unsigned int uY, struct Texture *pTexture);
+ virtual void DrawTextureIndexedAlpha(unsigned int uX, unsigned int uY, struct Texture *pTexture);
virtual void DrawAura(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8);
virtual void _4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8);
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/RenderD3D11.cpp
--- a/Engine/Graphics/RenderD3D11.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/RenderD3D11.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -6,6 +6,7 @@
#include "../mm7_data.h"
#include "Texture.h"
#include "../Log.h"
+#include "Sprites.h"
#define ErrorD3D(x)\
{\
@@ -28,7 +29,6 @@
void RenderD3D11::ClearBlack() {__debugbreak();}
void RenderD3D11::SaveWinnersCertificate(const char *a1) {__debugbreak();}
-void RenderD3D11::Present() {__debugbreak();}
void RenderD3D11::_49FD3A_fullscreen() {__debugbreak();}
bool RenderD3D11::InitializeFullscreen() {__debugbreak(); return 0;}
void RenderD3D11::CreateZBuffer() {__debugbreak();}
@@ -59,16 +59,10 @@
void RenderD3D11::TransformBillboardsAndSetPalettesODM() {__debugbreak();}
void RenderD3D11::DrawBillboardList_BLV() {__debugbreak();}
void RenderD3D11::DrawProjectile(float srcX, float srcY, float a3, float a4, float dstX, float dstY, float a7, float a8, IDirect3DTexture2 *a9) {__debugbreak();}
-bool RenderD3D11::LoadTexture(const char *pName, unsigned int bMipMaps, IDirectDrawSurface4 **pOutSurface, IDirect3DTexture2 **pOutTexture) {__debugbreak(); return 0;}
-bool RenderD3D11::MoveSpriteToDevice(Sprite *pSprite) {__debugbreak(); return 0;}
void RenderD3D11::ScreenFade(unsigned int color, float t) {__debugbreak();}
-void RenderD3D11::SetTextureClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW) {__debugbreak();}
-void RenderD3D11::ResetTextureClipRect() {__debugbreak();}
void RenderD3D11::CreditsTextureScroll(unsigned int pX, unsigned int pY, int move_X, int move_Y, RGBTexture *pTexture) {__debugbreak();}
-void RenderD3D11::DrawTextureIndexed(unsigned int uX, unsigned int uY, struct Texture *a4) {__debugbreak();}
void RenderD3D11::ZBuffer_Fill_2(signed int a2, signed int a3, struct Texture *pTexture, int a5) {__debugbreak();}
void RenderD3D11::DrawMaskToZBuffer(signed int uOutX, unsigned int uOutY, struct Texture *pTexture, int zVal) {__debugbreak();}
-void RenderD3D11::DrawTextureTransparent(unsigned int uX, unsigned int uY, struct Texture *pTexture) {__debugbreak();}
void RenderD3D11::DrawAura(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8) {__debugbreak();}
void RenderD3D11::_4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8) {__debugbreak();}
void RenderD3D11::DrawTransparentRedShade(unsigned int a2, unsigned int a3, struct Texture *a4) {__debugbreak();}
@@ -77,7 +71,6 @@
void RenderD3D11::DrawMasked(signed int a2, signed int a3, struct Texture *pTexture, unsigned __int16 mask) {__debugbreak();}
void RenderD3D11::GetLeather(unsigned int a2, unsigned int a3, struct Texture *a4, __int16 height) {__debugbreak();}
void RenderD3D11::DrawTextPalette(int x, int y, unsigned char* font_pixels, int a5, unsigned int uFontHeight, unsigned __int16 *pPalette, int a8) {__debugbreak();}
-void RenderD3D11::DrawText(signed int uOutX, signed int uOutY, unsigned __int8 *pFontPixels, unsigned int uCharWidth, unsigned int uCharHeight, unsigned __int16 *pFontPalette, unsigned __int16 uFaceColor, unsigned __int16 uShadowColor) {__debugbreak();}
void RenderD3D11::FillRectFast(unsigned int uX, unsigned int uY, unsigned int uWidth, unsigned int uHeight, unsigned int uColor16) {__debugbreak();}
void RenderD3D11::_4A6DF5(unsigned __int16 *pBitmap, unsigned int uBitmapPitch, struct Vec2_int_ *pBitmapXY, void *pTarget, unsigned int uTargetPitch, Vec4_int_ *a7) {__debugbreak();}
void RenderD3D11::DrawTranslucent(unsigned int a2, unsigned int a3, struct Texture *a4) {__debugbreak();}
@@ -90,7 +83,7 @@
void RenderD3D11::DrawSpriteObjects_ODM() {__debugbreak();}
void RenderD3D11::RenderTerrainD3D() {__debugbreak();}
void RenderD3D11::ChangeBetweenWinFullscreenModes() {__debugbreak();}
-bool RenderD3D11::AreRenderSurfacesOk() {__debugbreak(); return 0;}
+bool RenderD3D11::AreRenderSurfacesOk() {return true;}
void RenderD3D11::SaveScreenshot(const char *pFilename, unsigned int width, unsigned int height) {__debugbreak();}
void RenderD3D11::PackScreenshot(unsigned int width, unsigned int height, void *out_data, unsigned int data_size, unsigned int *screenshot_size) {__debugbreak();}
void RenderD3D11::SavePCXScreenshot() {__debugbreak();}
@@ -115,6 +108,22 @@
+void RenderD3D11::SetUIClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW)
+{
+ ui_clip_rect.left = uX;
+ ui_clip_rect.top = uY;
+ ui_clip_rect.right = uZ;
+ ui_clip_rect.bottom = uW;
+}
+
+void RenderD3D11::ResetUIClipRect()
+{
+ ui_clip_rect.left = 0;
+ ui_clip_rect.top = 0;
+ ui_clip_rect.right = window->GetWidth();
+ ui_clip_rect.bottom = window->GetHeight();
+}
+
void RenderD3D11::PresentBlackScreen()
{
ClearTarget(0xFF000000);
@@ -137,6 +146,19 @@
}
+
+void RenderD3D11::DrawTextureIndexed(unsigned int uX, unsigned int uY, struct Texture *a4)
+{
+ PrepareTextureIndexed(a4);
+ DrawTexture((float)uX / window->GetWidth(), (float)uY / window->GetHeight(), a4->uTextureWidth, a4->uTextureHeight, a4->d3d11_srv, ui_blend_solid);
+}
+
+void RenderD3D11::DrawTextureIndexedAlpha(unsigned int uX, unsigned int uY, struct Texture *a4)
+{
+ PrepareTextureIndexed(a4);
+ DrawTexture((float)uX / window->GetWidth(), (float)uY / window->GetHeight(), a4->uTextureWidth, a4->uTextureHeight, a4->d3d11_srv, ui_blend_alpha);
+}
+
void RenderD3D11::DrawTextureRGB(unsigned int uOutX, unsigned int uOutY, RGBTexture *a4)
{
__debugbreak();
@@ -149,60 +171,32 @@
void RenderD3D11::DrawTextureNew(float u, float v, RGBTexture *tex)
{
- if (!tex->d3d11_srv)
- {
- auto desc = tex->d3d11_desc = new D3D11_TEXTURE2D_DESC;
- desc->Width = tex->uWidth;
- desc->Height = tex->uHeight;
- desc->ArraySize = 1;
- desc->MipLevels = 1;
- desc->Format = DXGI_FORMAT_R8G8B8A8_UNORM;
- desc->SampleDesc.Count = 1;
- desc->SampleDesc.Quality = 0;
- desc->Usage = D3D11_USAGE_DEFAULT;
- desc->BindFlags = D3D11_BIND_SHADER_RESOURCE;
- desc->CPUAccessFlags = 0;
- desc->MiscFlags = 0;
-
- ID3D11Texture2D *vram_texture = nullptr;
- ErrD3D(d3dd->CreateTexture2D(desc, nullptr, &vram_texture));
+ PrepareTexture(tex);
+ DrawTexture(u, v, tex->uWidth, tex->uHeight, tex->d3d11_srv, ui_blend_solid);
+}
- D3D11_TEXTURE2D_DESC ram_desc;
- memcpy(&ram_desc, desc, sizeof(ram_desc));
- ram_desc.Usage = D3D11_USAGE_STAGING;
- ram_desc.BindFlags = 0;
- ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
-
- ID3D11Texture2D *ram_texture = nullptr;
- ErrD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+void RenderD3D11::DrawText(signed int uX, signed int uY, unsigned __int8 *pFontPixels, unsigned int uCharWidth, unsigned int uCharHeight, unsigned __int16 *pFontPalette, unsigned __int16 uFaceColor, unsigned __int16 uShadowColor)
+{
+ auto srv = PrepareFontTexture(pFontPixels, uCharWidth, uCharHeight, pFontPalette, uFaceColor, uShadowColor);
+ {
+ DrawTexture((float)uX / window->GetWidth(), (float)uY / window->GetHeight(), uCharWidth, uCharHeight, srv, ui_blend_alpha);
+ }
+ srv->Release();
+}
- D3D11_MAPPED_SUBRESOURCE map;
- ErrD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
- for (unsigned int y = 0; y < desc->Height; ++y)
- for (unsigned int x = 0; x < desc->Width; ++x)
- {
- auto src = tex->pPixels + y * tex->uWidth + x;
- auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
- extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
- *dst = 0xFF000000 | Color32_SwapRedBlue(*src);
- }
-
- d3dc->Unmap(ram_texture, 0);
- d3dc->CopyResource(vram_texture, ram_texture);
- ram_texture->Release();
-
- ErrD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, (ID3D11ShaderResourceView **)&tex->d3d11_srv));
- vram_texture->Release();
- }
-
+void RenderD3D11::DrawTexture(float u, float v, int texture_width, int texture_height, ID3D11ShaderResourceView *srv, ID3D11BlendState *blend)
+{
+ bool clipping = false;
+ if (ui_clip_rect.left != 0 || ui_clip_rect.top != 0
+ || ui_clip_rect.right != window->GetWidth() || ui_clip_rect.bottom != window->GetHeight())
+ clipping = true;
float blendFactor[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
d3dc->OMSetRenderTargets(1, &primary_srv, depth_srv);
- d3dc->OMSetBlendState(ui_blend, blendFactor, 0xFFFFFFFF);
+ d3dc->OMSetBlendState(blend, blendFactor, 0xFFFFFFFF);
d3dc->OMSetDepthStencilState(ui_depthstencil, 1);
-
{
struct cb_fast
{
@@ -219,8 +213,8 @@
{
data.pos_x = u;
data.pos_y = v;
- data.size_x = (float)tex->uWidth / window->GetWidth();
- data.size_y = (float)tex->uHeight / window->GetHeight();
+ data.size_x = (float)texture_width / window->GetWidth();
+ data.size_y = (float)texture_height / window->GetHeight();
}
memcpy(map.pData, &data, sizeof(data));
}
@@ -232,7 +226,14 @@
d3dc->PSSetShader(ui_ps, nullptr, 0);
d3dc->PSSetConstantBuffers(0, 1, &ui_cb_fast);
- d3dc->PSSetShaderResources(0, 1, &tex->d3d11_srv);
+ d3dc->PSSetShaderResources(0, 1, &srv);
+
+ if (clipping)
+ {
+ d3dc->RSSetState(ui_rasterizer);
+ d3dc->RSSetScissorRects(1, &ui_clip_rect);
+ }
+ //d3dc->RSSetViewports(1, &ui_viewport);
uint uOffset = 0;
uint uStride = 4 * sizeof(float);
@@ -242,6 +243,17 @@
d3dc->Draw(6, 0);
+ if (clipping)
+ {
+ d3dc->RSSetState(default_rasterizer);
+ //d3dc->RSSetScissorRects(0, nullptr);
+ }
+}
+
+
+
+void RenderD3D11::Present()
+{
pSwapChain->Present(0, 0);
}
@@ -313,7 +325,10 @@
auto d3d_lib = LoadLibraryW(L"d3d11.dll");
if (!d3d_lib)
- return Error("d3d11.dll is missing"), false;
+ {
+ Error("d3d11.dll is missing");
+ return false;
+ }
DXGI_SWAP_CHAIN_DESC swapChainDesc;
@@ -416,6 +431,24 @@
ErrorD3D(d3dd->CreateRasterizerState(&default_rasterizer_desc, &default_rasterizer));
d3dc->RSSetState(default_rasterizer);
+
+
+ D3D11_RASTERIZER_DESC ui_rasterizer_desc;
+ memset(&ui_rasterizer_desc, 0, sizeof(ui_rasterizer_desc));
+ ui_rasterizer_desc.FillMode = D3D11_FILL_SOLID;
+ ui_rasterizer_desc.CullMode = D3D11_CULL_NONE;
+ //ui_rasterizer_desc.FrontCounterClockwise = false;
+ //ui_rasterizer_desc.DepthBias = 0;
+ //ui_rasterizer_desc.DepthBiasClamp = 0.0f;
+ //ui_rasterizer_desc.SlopeScaledDepthBias = 0.0f;
+ //ui_rasterizer_desc.DepthClipEnable = true;
+ ui_rasterizer_desc.ScissorEnable = true;
+ //ui_rasterizer_desc.MultisampleEnable = false;
+ //ui_rasterizer_desc.AntialiasedLineEnable = false;
+
+ ErrorD3D(d3dd->CreateRasterizerState(&ui_rasterizer_desc, &ui_rasterizer));
+
+
default_depthstencil = nullptr;
default_blend = nullptr;
@@ -423,21 +456,23 @@
D3D11_VIEWPORT viewport;
memset(&viewport, 0, sizeof(viewport));
- viewport.TopLeftX = game_viewport_x;
- viewport.TopLeftY = game_viewport_y;
+ viewport.TopLeftX = 0;
+ viewport.TopLeftY = 0;
viewport.Width = window->GetWidth();
viewport.Height = window->GetHeight();
viewport.MinDepth = 0;
viewport.MaxDepth = 1;
d3dc->RSSetViewports(1, &viewport);
+ ResetUIClipRect();
+
D3D11_INPUT_ELEMENT_DESC layout_desc[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
//{ "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 16, D3D11_INPUT_PER_VERTEX_DATA, 0 },
};
- CompileShader(d3dd, L"data/shaders/UI.shader", layout_desc, 1/*2*/, &ui_vs, &ui_ps, &ui_layout);
+ CompileShader(d3dd, L"data/shaders/UI.hlsl", layout_desc, 1/*2*/, &ui_vs, &ui_ps, &ui_layout);
{
uint uVertexSize = 4 * sizeof(float);
@@ -508,18 +543,123 @@
ErrorD3D(d3dd->CreateDepthStencilState(&ui_depthstencil_desc, &ui_depthstencil));
- D3D11_BLEND_DESC ui_blend_desc;
- memset(&ui_blend_desc, 0, sizeof(ui_blend_desc));
- ui_blend_desc.RenderTarget[0].BlendEnable = false;
- ui_blend_desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
- ErrD3D(d3dd->CreateBlendState(&ui_blend_desc, &ui_blend));
+ D3D11_BLEND_DESC ui_blend_solid_desc;
+ memset(&ui_blend_solid_desc, 0, sizeof(ui_blend_solid_desc));
+ ui_blend_solid_desc.RenderTarget[0].BlendEnable = false;
+ ui_blend_solid_desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
+ ErrorD3D(d3dd->CreateBlendState(&ui_blend_solid_desc, &ui_blend_solid));
- return true;
+ D3D11_BLEND_DESC ui_blend_alpha_desc;
+ memset(&ui_blend_alpha_desc, 0, sizeof(ui_blend_alpha_desc));
+ ui_blend_alpha_desc.RenderTarget[0].BlendEnable = true;
+ ui_blend_alpha_desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
+ ui_blend_alpha_desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
+ ui_blend_alpha_desc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA;
+ ui_blend_alpha_desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA;
+ ui_blend_alpha_desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
+ ui_blend_alpha_desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
+ ui_blend_alpha_desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE;
+ ErrorD3D(d3dd->CreateBlendState(&ui_blend_alpha_desc, &ui_blend_alpha));
+
+
+ return pD3DBitmaps.Load(L"data\\d3dbitmap.hwl") && pD3DSprites.Load(L"data\\d3dsprite.hwl");
}
+bool RenderD3D11::MoveSpriteToDevice(Sprite *pSprite)
+{
+ HWLTexture *sprite_texture; // eax@1
+ unsigned __int16 *v9; // edx@5
+ LPVOID v10; // eax@5
+ DDSURFACEDESC2 Dst; // [sp+Ch] [bp-7Ch]@4
+
+ sprite_texture = pD3DSprites.LoadTexture(pSprite->pName, pSprite->uPaletteID);
+ if ( sprite_texture )
+ {
+ pSprite->uAreaX = sprite_texture->uAreaX;
+ pSprite->uAreaY = sprite_texture->uAreaY;
+ pSprite->uBufferWidth = sprite_texture->uBufferWidth;
+ pSprite->uBufferHeight = sprite_texture->uBufferHeight;
+ pSprite->uAreaWidth = sprite_texture->uAreaWidth;
+ pSprite->uAreaHeight = sprite_texture->uAreaHeigth;
+
+ {
+ D3D11_TEXTURE2D_DESC desc;
+ desc.Width = sprite_texture->uWidth;
+ desc.Height = sprite_texture->uHeight;
+ desc.ArraySize = 1;
+ desc.MipLevels = 1;
+ desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ desc.SampleDesc.Count = 1;
+ desc.SampleDesc.Quality = 0;
+ desc.Usage = D3D11_USAGE_DEFAULT;
+ desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
+ desc.CPUAccessFlags = 0;
+ desc.MiscFlags = 0;
+
+ ID3D11Texture2D *vram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&desc, nullptr, &vram_texture));
+
+ D3D11_TEXTURE2D_DESC ram_desc;
+ memcpy(&ram_desc, &desc, sizeof(ram_desc));
+ ram_desc.Usage = D3D11_USAGE_STAGING;
+ ram_desc.BindFlags = 0;
+ ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+
+ ID3D11Texture2D *ram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+
+ D3D11_MAPPED_SUBRESOURCE map;
+ ErrorD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
+ for (unsigned int y = 0; y < desc.Height; ++y)
+ for (unsigned int x = 0; x < desc.Width; ++x)
+ {
+ auto src = sprite_texture->pPixels + y * desc.Width + x;
+ auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
+
+ extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
+ *dst = 0xFF000000 | Color32_SwapRedBlue(*src);
+ }
+
+
+ d3dc->Unmap(ram_texture, 0);
+ d3dc->CopyResource(vram_texture, ram_texture);
+ ram_texture->Release();
+
+ ID3D11ShaderResourceView *srv = nullptr;
+ ErrorD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, &srv));
+ vram_texture->Release();
+
+ pSprite->d3d11_srv = srv;
+ }
+ /*if (!pRenderD3D->CreateTexture(sprite_texture->uWidth, sprite_texture->uHeight, &pSprite->pTextureSurface, &pSprite->pTexture, 1u, 0, uMinDeviceTextureDim))
+ Error("HiScreen16::LoadTexture - D3Drend->CreateTexture() failed: %x", 0);
+ memset(&Dst, 0, sizeof(DDSURFACEDESC2));
+ Dst.dwSize = 124;
+ if ( LockSurface_DDraw4((IDirectDrawSurface4 *)pSprite->pTextureSurface, &Dst, DDLOCK_WAIT | DDLOCK_WRITEONLY) )
+ {
+ v9 = sprite_texture->pPixels;
+ v10 = Dst.lpSurface;
+ for (uint i=0; iuHeight; ++i)
+ {
+ for (uint j=0; juWidth/2; ++j)
+ {
+ *(int *)v10 = *(int *)v9;
+ v9 += 2;
+ v10 = (char *)v10 + 4;
+ }
+ v10 = (char *)v10 + Dst.lPitch-sprite_texture->uWidth*2;
+ }
+ ErrD3D(pSprite->pTextureSurface->Unlock(NULL));
+ }*/
+ delete [] sprite_texture->pPixels;
+ delete sprite_texture;
+ return true;
+ }
+ return false;
+}
ID3DBlob *DoD3DCompiling(const wchar_t *shader_name, const char *pShaderSource, uint uShaderSourceLen, const char *pEntry, const char *pVersionString, uint uCompileOptions);
@@ -551,9 +691,9 @@
DoCompile(pShaderSourceFile, pShaderSource, uShaderSourceLen, &vs, &vs_size, &ps, &ps_size);
- ErrD3D(d3dd->CreateVertexShader(vs, vs_size, nullptr, vertex_out));
- ErrD3D(d3dd->CreatePixelShader(ps, ps_size, nullptr, pixel_out));
- ErrD3D(d3dd->CreateInputLayout(input_desc, input_desc_size, vs, vs_size, layout_out));
+ ErrorD3D(d3dd->CreateVertexShader(vs, vs_size, nullptr, vertex_out));
+ ErrorD3D(d3dd->CreatePixelShader(ps, ps_size, nullptr, pixel_out));
+ ErrorD3D(d3dd->CreateInputLayout(input_desc, input_desc_size, vs, vs_size, layout_out));
delete [] vs;
delete [] ps;
@@ -667,4 +807,255 @@
}
return pShader;
+}
+
+
+void RenderD3D11::PrepareTexture(RGBTexture *p)
+{
+ if (!p->d3d11_srv)
+ {
+ auto desc = p->d3d11_desc = new D3D11_TEXTURE2D_DESC;
+ desc->Width = p->uWidth;
+ desc->Height = p->uHeight;
+ desc->ArraySize = 1;
+ desc->MipLevels = 1;
+ desc->Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ desc->SampleDesc.Count = 1;
+ desc->SampleDesc.Quality = 0;
+ desc->Usage = D3D11_USAGE_DEFAULT;
+ desc->BindFlags = D3D11_BIND_SHADER_RESOURCE;
+ desc->CPUAccessFlags = 0;
+ desc->MiscFlags = 0;
+
+ ID3D11Texture2D *vram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(desc, nullptr, &vram_texture));
+
+ D3D11_TEXTURE2D_DESC ram_desc;
+ memcpy(&ram_desc, desc, sizeof(ram_desc));
+ ram_desc.Usage = D3D11_USAGE_STAGING;
+ ram_desc.BindFlags = 0;
+ ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+
+ ID3D11Texture2D *ram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+
+ D3D11_MAPPED_SUBRESOURCE map;
+ ErrorD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
+ for (unsigned int y = 0; y < desc->Height; ++y)
+ for (unsigned int x = 0; x < desc->Width; ++x)
+ {
+ auto src = p->pPixels + y * p->uWidth + x;
+ auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
+
+ extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
+ *dst = 0xFF000000 | Color32_SwapRedBlue(*src);
+ }
+
+ d3dc->Unmap(ram_texture, 0);
+ d3dc->CopyResource(vram_texture, ram_texture);
+ ram_texture->Release();
+
+ ErrorD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, (ID3D11ShaderResourceView **)&p->d3d11_srv));
+ vram_texture->Release();
+ }
+}
+
+
+
+void RenderD3D11::PrepareTextureIndexed(Texture *p)
+{
+ if (!p->d3d11_srv)
+ {
+ auto desc = p->d3d11_desc = new D3D11_TEXTURE2D_DESC;
+ desc->Width = p->uTextureWidth;
+ desc->Height = p->uTextureHeight;
+ desc->ArraySize = 1;
+ desc->MipLevels = 1;
+ desc->Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ desc->SampleDesc.Count = 1;
+ desc->SampleDesc.Quality = 0;
+ desc->Usage = D3D11_USAGE_DEFAULT;
+ desc->BindFlags = D3D11_BIND_SHADER_RESOURCE;
+ desc->CPUAccessFlags = 0;
+ desc->MiscFlags = 0;
+
+ ID3D11Texture2D *vram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(desc, nullptr, &vram_texture));
+
+ D3D11_TEXTURE2D_DESC ram_desc;
+ memcpy(&ram_desc, desc, sizeof(ram_desc));
+ ram_desc.Usage = D3D11_USAGE_STAGING;
+ ram_desc.BindFlags = 0;
+ ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+
+ ID3D11Texture2D *ram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+
+ D3D11_MAPPED_SUBRESOURCE map;
+ ErrorD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
+ for (unsigned int y = 0; y < desc->Height; ++y)
+ for (unsigned int x = 0; x < desc->Width; ++x)
+ {
+ auto index = p->pLevelOfDetail0_prolly_alpha_mask[y * p->uTextureWidth + x];
+ auto src = p->pPalette16[index];
+ auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
+
+ if (index)
+ {
+ extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
+ *dst = 0xFF000000 | Color32_SwapRedBlue(src);
+ }
+ else
+ *dst = 0x00000000;
+ }
+
+ d3dc->Unmap(ram_texture, 0);
+ d3dc->CopyResource(vram_texture, ram_texture);
+ ram_texture->Release();
+
+ ErrorD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, (ID3D11ShaderResourceView **)&p->d3d11_srv));
+ vram_texture->Release();
+ }
+}
+
+
+ID3D11ShaderResourceView *RenderD3D11::PrepareFontTexture(unsigned char *pFontPixels, unsigned int uCharWidth, unsigned int uCharHeight, unsigned short *pFontPalette, unsigned short uFaceColor, unsigned short uShadowColor)
+{
+ D3D11_TEXTURE2D_DESC desc;
+ desc.Width = uCharWidth;
+ desc.Height = uCharHeight;
+ desc.ArraySize = 1;
+ desc.MipLevels = 1;
+ desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ desc.SampleDesc.Count = 1;
+ desc.SampleDesc.Quality = 0;
+ desc.Usage = D3D11_USAGE_DEFAULT;
+ desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
+ desc.CPUAccessFlags = 0;
+ desc.MiscFlags = 0;
+
+ ID3D11Texture2D *vram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&desc, nullptr, &vram_texture));
+
+ D3D11_TEXTURE2D_DESC ram_desc;
+ memcpy(&ram_desc, &desc, sizeof(ram_desc));
+ ram_desc.Usage = D3D11_USAGE_STAGING;
+ ram_desc.BindFlags = 0;
+ ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+
+ ID3D11Texture2D *ram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+
+ D3D11_MAPPED_SUBRESOURCE map;
+ ErrorD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
+ for (unsigned int y = 0; y < desc.Height; ++y)
+ for (unsigned int x = 0; x < desc.Width; ++x)
+ {
+ auto index = pFontPixels[y * desc.Width + x];
+ auto src = pFontPalette[index];
+ auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
+
+ if (index)
+ {
+ extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
+ *dst = 0xFF000000 | Color32_SwapRedBlue(index == 1 ? uShadowColor : uFaceColor);
+ }
+ else
+ *dst = 0x00000000;
+ }
+
+ d3dc->Unmap(ram_texture, 0);
+ d3dc->CopyResource(vram_texture, ram_texture);
+ ram_texture->Release();
+
+ ID3D11ShaderResourceView *srv = nullptr;
+ ErrorD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, &srv));
+ vram_texture->Release();
+
+ return srv;
+}
+
+void d3d11_release(ID3D11ShaderResourceView *srv)
+{
+ srv->Release();
+}
+
+
+//----- (004A4DE1) --------------------------------------------------------
+bool RenderD3D11::LoadTexture(const char *pName, unsigned int bMipMaps, IDirectDrawSurface4 **pOutSurface, IDirect3DTexture2 **pOutTexture)
+{
+ unsigned __int16 *v13; // ecx@19
+ unsigned __int16 *v14; // eax@19
+ DWORD v15; // edx@20
+
+ HWLTexture* pHWLTexture = pD3DBitmaps.LoadTexture(pName, bMipMaps);
+ if (!pHWLTexture)
+ return false;
+
+ int num_min_levels = 1;
+ {
+ int dim = min(pHWLTexture->uWidth, pHWLTexture->uHeight);
+ while (dim > 1)
+ {
+ dim /= 2;
+ num_min_levels++;
+ }
+ }
+
+
+ {
+ D3D11_TEXTURE2D_DESC desc;
+ desc.Width = pHWLTexture->uWidth;
+ desc.Height = pHWLTexture->uHeight;
+ desc.ArraySize = 1;
+ desc.MipLevels = num_min_levels;
+ desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ desc.SampleDesc.Count = 1;
+ desc.SampleDesc.Quality = 0;
+ desc.Usage = D3D11_USAGE_DEFAULT;
+ desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET/* for mipmap generation */;
+ desc.CPUAccessFlags = 0;
+ desc.MiscFlags = D3D11_RESOURCE_MISC_GENERATE_MIPS;
+
+ ID3D11Texture2D *vram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&desc, nullptr, &vram_texture));
+
+ D3D11_TEXTURE2D_DESC ram_desc;
+ memcpy(&ram_desc, &desc, sizeof(ram_desc));
+ ram_desc.Usage = D3D11_USAGE_STAGING;
+ ram_desc.BindFlags = 0;
+ ram_desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
+ ram_desc.MiscFlags = 0;
+
+ ID3D11Texture2D *ram_texture = nullptr;
+ ErrorD3D(d3dd->CreateTexture2D(&ram_desc, nullptr, &ram_texture));
+
+ D3D11_MAPPED_SUBRESOURCE map;
+ ErrorD3D(d3dc->Map(ram_texture, 0, D3D11_MAP_WRITE, 0, &map));
+ for (unsigned int y = 0; y < desc.Height; ++y)
+ for (unsigned int x = 0; x < desc.Width; ++x)
+ {
+ auto src = pHWLTexture->pPixels + y * desc.Width + x;
+ auto dst = (unsigned int *)((char *)map.pData + y * map.RowPitch) + x;
+
+ extern unsigned __int32 Color32_SwapRedBlue(unsigned __int16 color16);
+ *dst = 0xFF000000 | Color32_SwapRedBlue(*src);
+ }
+
+ d3dc->Unmap(ram_texture, 0);
+ d3dc->CopyResource(vram_texture, ram_texture);
+ ram_texture->Release();
+
+ ID3D11ShaderResourceView *srv = nullptr;
+ ErrorD3D(d3dd->CreateShaderResourceView(vram_texture, nullptr, &srv));
+ vram_texture->Release();
+
+ d3dc->GenerateMips(srv);
+ *pOutTexture = (IDirect3DTexture2 *)srv;
+ *pOutSurface = nullptr;
+ }
+
+ delete [] pHWLTexture->pPixels;
+ delete pHWLTexture;
+ return true;
}
\ No newline at end of file
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/RenderD3D11.h
--- a/Engine/Graphics/RenderD3D11.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/RenderD3D11.h Fri Oct 10 17:42:05 2014 +0300
@@ -74,8 +74,8 @@
virtual void EndScene();
virtual void ScreenFade(unsigned int color, float t);
- virtual void SetTextureClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW);
- virtual void ResetTextureClipRect();
+ virtual void SetUIClipRect(unsigned int uX, unsigned int uY, unsigned int uZ, unsigned int uW);
+ virtual void ResetUIClipRect();
virtual void CreditsTextureScroll(unsigned int pX, unsigned int pY, int move_X, int move_Y, RGBTexture *pTexture);
virtual void DrawTextureNew(float u, float v, struct Texture *);
@@ -85,7 +85,7 @@
virtual void ZBuffer_Fill_2(signed int a2, signed int a3, struct Texture *pTexture, int a5);
virtual void DrawMaskToZBuffer(signed int uOutX, unsigned int uOutY, struct Texture *pTexture, int zVal);
- virtual void DrawTextureTransparent(unsigned int uX, unsigned int uY, struct Texture *pTexture);
+ virtual void DrawTextureIndexedAlpha(unsigned int uX, unsigned int uY, struct Texture *pTexture);
virtual void DrawAura(unsigned int a2, unsigned int a3, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8);
virtual void _4A65CC(unsigned int x, unsigned int y, struct Texture *a4, struct Texture *a5, int a6, int a7, int a8);
@@ -165,6 +165,11 @@
protected:
+ void DrawTexture(float u, float v, int texture_width, int texture_height, ID3D11ShaderResourceView *srv, ID3D11BlendState *blend);
+ void PrepareTexture(struct RGBTexture *p);
+ void PrepareTextureIndexed(struct Texture *p);
+ ID3D11ShaderResourceView *PrepareFontTexture(unsigned char *pFontPixels, unsigned int uCharWidth, unsigned int uCharHeight, unsigned short *pFontPalette, unsigned short uFaceColor, unsigned short uShadowColor);
+
OSWindow *window;
IDXGISwapChain *pSwapChain;
@@ -182,5 +187,12 @@
ID3D11InputLayout *ui_layout;
ID3D11Buffer *ui_vb;
ID3D11DepthStencilState *ui_depthstencil;
- ID3D11BlendState *ui_blend;
+ ID3D11BlendState *ui_blend_solid;
+ ID3D11BlendState *ui_blend_alpha;
+ ID3D11RasterizerState *ui_rasterizer;
+ D3D11_RECT ui_clip_rect;
+
+
+ RenderHWLContainer pD3DBitmaps;
+ RenderHWLContainer pD3DSprites;
};
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Shaders/UI.hlsl
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Engine/Graphics/Shaders/UI.hlsl Fri Oct 10 17:42:05 2014 +0300
@@ -0,0 +1,45 @@
+cbuffer fast: register(b0)
+{
+ float2 position : packoffset(c0.x);
+ float2 size : packoffset(c0.z);
+};
+
+cbuffer slow: register(b1)
+{
+};
+
+
+struct VInput
+{
+ float4 pos: POSITION0;
+};
+
+struct VOutput
+{
+ float4 pos: SV_Position0;
+ float2 uv: TEXCOORD0;
+};
+
+
+VOutput vs(VInput vin)
+{
+ VOutput vout;
+
+ float2 normalized_pos = vin.pos.xy * position.xy + vin.pos.zw * size.xy;
+ vout.pos.xy = float2(2, -2) * normalized_pos + float2(-1, 1);
+ vout.pos.zw = float2(0, 1);
+ vout.uv = vin.pos.zw;
+
+ return vout;
+}
+
+
+
+
+SamplerState basic_sampler: register(s0);
+Texture2D image: register(t0);
+
+float4 main(VOutput pin): SV_Target0
+{
+ return image.Sample(basic_sampler, pin.uv);
+}
\ No newline at end of file
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Shaders/UI.shader
--- a/Engine/Graphics/Shaders/UI.shader Thu Oct 09 23:33:36 2014 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-cbuffer fast: register(b0)
-{
- float2 position : packoffset(c0.x);
- float2 size : packoffset(c0.z);
-};
-
-cbuffer slow: register(b1)
-{
-};
-
-
-struct VInput
-{
- float4 pos: POSITION0;
-};
-
-struct VOutput
-{
- float4 pos: SV_Position0;
- float2 uv: TEXCOORD0;
-};
-
-
-VOutput vs(VInput vin)
-{
- VOutput vout;
-
- float2 normalized_pos = vin.pos.xy * position.xy + vin.pos.zw * size.xy;
- vout.pos.xy = float2(2, -2) * normalized_pos + float2(-1, 1);
- vout.pos.zw = float2(0, 1);
- vout.uv = vin.pos.zw;
-
- return vout;
-}
-
-
-
-
-SamplerState basic_sampler: register(s0);
-Texture2D image: register(t0);
-
-float4 main(VOutput pin): SV_Target0
-{
- return image.Sample(basic_sampler, pin.uv);
-}
\ No newline at end of file
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Sprites.h
--- a/Engine/Graphics/Sprites.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Sprites.h Fri Oct 10 17:42:05 2014 +0300
@@ -5,7 +5,13 @@
#pragma pack(push, 1)
class Sprite //28h
{
-public:
+ public:
+ inline Sprite()
+ {
+ d3d11_srv = nullptr;
+ }
+ ~Sprite();
+
void Release();
const char *pName; //0
@@ -18,6 +24,8 @@
int uBufferHeight; //1ch
int uAreaWidth; //20h
int uAreaHeight; //24h
+
+ struct ID3D11ShaderResourceView *d3d11_srv;
};
#pragma pack(pop)
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Texture.cpp
--- a/Engine/Graphics/Texture.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Texture.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -395,8 +395,21 @@
pLevelOfDetail0_prolly_alpha_mask = nullptr;
pLevelOfDetail1 = nullptr;
- pLevelOfDetail2 = nullptr;
- pLevelOfDetail3 = nullptr;
+ //pLevelOfDetail2 = nullptr;
+ //pLevelOfDetail3 = nullptr;
+
+ if (d3d11_srv)
+ {
+ if (d3d11_desc)
+ {
+ delete d3d11_desc;
+ d3d11_desc = nullptr;
+ }
+
+ extern void d3d11_release(struct ID3D11ShaderResourceView *);
+ d3d11_release(d3d11_srv);
+ d3d11_srv = nullptr;
+ }
pPalette16 = nullptr;
pPalette24 = nullptr;
@@ -494,11 +507,14 @@
palette_id1 = 0;
palette_id2 = 0;
pLevelOfDetail0_prolly_alpha_mask = nullptr;
- pLevelOfDetail3 = nullptr;
- pLevelOfDetail2 = nullptr;
+ //pLevelOfDetail3 = nullptr;
+ //pLevelOfDetail2 = nullptr;
pLevelOfDetail1 = nullptr;
pPalette16 = nullptr;
pPalette24 = nullptr;
+
+ d3d11_srv = nullptr;
+ d3d11_desc = nullptr;
}
//----- (0040F414) --------------------------------------------------------
@@ -1290,8 +1306,17 @@
this->field_18 = 0;
if (d3d11_srv)
- __debugbreak(); // should properly release this stuff
- d3d11_srv = nullptr;
+ {
+ if (d3d11_desc)
+ {
+ delete d3d11_desc;
+ d3d11_desc = nullptr;
+ }
+
+ extern void d3d11_release(struct ID3D11ShaderResourceView *);
+ d3d11_release(d3d11_srv);
+ d3d11_srv = nullptr;
+ }
}
//----- (0040E55E) --------------------------------------------------------
diff -r c532d5242055 -r c7264ab7132f Engine/Graphics/Texture.h
--- a/Engine/Graphics/Texture.h Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Graphics/Texture.h Fri Oct 10 17:42:05 2014 +0300
@@ -56,8 +56,8 @@
int pBits;
unsigned __int8 *pLevelOfDetail0_prolly_alpha_mask;
unsigned __int8 *pLevelOfDetail1;
- unsigned __int8 *pLevelOfDetail2;
- unsigned __int8 *pLevelOfDetail3;
+ /*unsigned __int8 *pLevelOfDetail2;*/ struct ID3D11ShaderResourceView *d3d11_srv; // replace ol SW stuff with new fields to keep data integrity
+ /*unsigned __int8 *pLevelOfDetail3;*/ struct D3D11_TEXTURE2D_DESC *d3d11_desc;
unsigned __int16 *pPalette16;
unsigned __int8 *pPalette24;
};
diff -r c532d5242055 -r c7264ab7132f Engine/LOD.cpp
--- a/Engine/LOD.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/LOD.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -1851,16 +1851,16 @@
v15 = (int)&pDst->pLevelOfDetail0_prolly_alpha_mask[pDst->uSizeOfMaxLevelOfDetail];
pDst->pLevelOfDetail1 = (unsigned __int8 *)v15;
v16 = (pDst->uSizeOfMaxLevelOfDetail >> 2) + v15;
- pDst->pLevelOfDetail2 = (unsigned __int8 *)v16;
+ //pDst->pLevelOfDetail2 = (unsigned __int8 *)v16;
v17 = v16 + (pDst->uSizeOfMaxLevelOfDetail >> 4);
}
else
{
v17 = 0;
- pDst->pLevelOfDetail2 = 0;
- pDst->pLevelOfDetail1 = 0;
+ //pDst->pLevelOfDetail2 = 0;
+ //pDst->pLevelOfDetail1 = 0;
}
- pDst->pLevelOfDetail3 = (unsigned __int8 *)v17;
+ //pDst->pLevelOfDetail3 = (unsigned __int8 *)v17;
v21 = 1;
while ( 1 << v21 != pDst->uTextureWidth )
{
@@ -2230,14 +2230,14 @@
if ( v8->pBits & 2 )
{
v8->pLevelOfDetail1 = &v8->pLevelOfDetail0_prolly_alpha_mask[v8->uSizeOfMaxLevelOfDetail];
- v8->pLevelOfDetail2 = &v8->pLevelOfDetail1[v8->uSizeOfMaxLevelOfDetail >> 2];
- v8->pLevelOfDetail3 = &v8->pLevelOfDetail2[v8->uSizeOfMaxLevelOfDetail >> 4];
+ //v8->pLevelOfDetail2 = &v8->pLevelOfDetail1[v8->uSizeOfMaxLevelOfDetail >> 2];
+ //v8->pLevelOfDetail3 = &v8->pLevelOfDetail2[v8->uSizeOfMaxLevelOfDetail >> 4];
}
else
{
v8->pLevelOfDetail1 = 0;
- v8->pLevelOfDetail2 = 0;
- v8->pLevelOfDetail3 = 0;
+ //v8->pLevelOfDetail2 = 0;
+ //v8->pLevelOfDetail3 = 0;
}
for ( v41 = 1; v41 < 15; ++v41 )
{
diff -r c532d5242055 -r c7264ab7132f Engine/MMT.cpp
--- a/Engine/MMT.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/MMT.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -60,14 +60,20 @@
tex.LoadPCXFile("data/New_Icons/MMTTITLE.pcx", 0);
else
tex.Load("mm6title.pcx", 2);
-
+
+ pRenderer->ResetUIClipRect();
pRenderer->BeginScene();
- pRenderer->DrawTextureNew(0, 0, &tex);
-
+ {
+ pRenderer->DrawTextureNew(0, 0, &tex);
+ }
+ pRenderer->EndScene();
+ pRenderer->Present();
+
tex.Release();
MainMenuUI_LoadFontsAndSomeStuff();
-
+
+ pRenderer->BeginScene();
if (use_MMT)
DrawMMTCopyrightWindow();
else
@@ -76,9 +82,10 @@
pRenderer->EndScene();
pRenderer->Present();
- #ifndef _DEBUG
+ #ifdef NDEBUG
Sleep(1500); // let the copyright window stay for a while
#endif
+
if (!use_MMT)
{
if (!bNoSound && pAudioPlayer->hAILRedbook )
@@ -106,15 +113,6 @@
bGameoverLoop = 0;
}
-void abort_(const char * s, ...)
-{
- va_list args;
- va_start(args, s);
- vfprintf(stderr, s, args);
- fprintf(stderr, "\n");
- va_end(args);
- abort();
-}
Texture *LoadPNG(const char *name)
{
@@ -134,21 +132,21 @@
/* open file and test for it being a png */
FILE *fp = fopen(name, "rb");
if (!fp)
- abort_("[read_png_file] File %s could not be opened for reading", name);
+ Error("[read_png_file] File %s could not be opened for reading", name);
fread(header, 1, 8, fp);
if (png_sig_cmp((png_bytep)header, 0, 8))
- abort_("[read_png_file] File %s is not recognized as a PNG file", name);
+ Error("[read_png_file] File %s is not recognized as a PNG file", name);
/* initialize stuff */
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (!png_ptr)
- abort_("[read_png_file] png_create_read_struct failed");
+ Error("[read_png_file] png_create_read_struct failed");
info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr)
- abort_("[read_png_file] png_create_info_struct failed");
+ Error("[read_png_file] png_create_info_struct failed");
if (setjmp(png_jmpbuf(png_ptr)))
- abort_("[read_png_file] Error during init_io");
+ Error("[read_png_file] Error during init_io");
png_init_io(png_ptr, fp);
png_set_sig_bytes(png_ptr, 8);
@@ -165,7 +163,7 @@
/* read file */
if (setjmp(png_jmpbuf(png_ptr)))
- abort_("[read_png_file] Error during read_image");
+ Error("[read_png_file] Error during read_image");
row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * height);
for (y=0; yuFrameX + (signed int)(window->uFrameWidth - bar_length) / 2;
- pRenderer->SetTextureClipRect(uX, window->uFrameY + 32, uX + bar_length, window->uFrameY + 52);
+ pRenderer->SetUIClipRect(uX, window->uFrameY + 32, uX + bar_length, window->uFrameY + 52);
pRenderer->DrawTextureIndexed(uX, window->uFrameY + 32, pIcons_LOD->GetTexture(uTextureID_mhp_bd));
- pRenderer->SetTextureClipRect(uX, window->uFrameY + 32, uX + v10, window->uFrameY + 52);
+ pRenderer->SetUIClipRect(uX, window->uFrameY + 32, uX + v10, window->uFrameY + 52);
pRenderer->DrawTextureIndexed(uX, window->uFrameY + 34, pIcons_LOD->GetTexture(v9));
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
pRenderer->DrawTextureIndexed(uX - 5, window->uFrameY + 32, pIcons_LOD->GetTexture(uTextureID_mhp_capl));
pRenderer->DrawTextureIndexed(uX + bar_length, window->uFrameY + 32, pIcons_LOD->GetTexture(uTextureID_mhp_capr));
}
diff -r c532d5242055 -r c7264ab7132f Engine/Objects/Chest.cpp
--- a/Engine/Objects/Chest.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Engine/Objects/Chest.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -272,7 +272,7 @@
itemPixelPosX = chest_offs_x + 32 * (item_counter % chestWidthCells) + ((signed int)(v13 - itemPixelWidth)/2);
itemPixelPosY = chest_offs_y + 32 * (item_counter / chestHeghtCells) +
((signed int)(((itemPixelHeght - 14) & 0xFFFFFFE0) + 32- item_texture->uTextureHeight ) /2);
- pRenderer->DrawTextureTransparent( itemPixelPosX, itemPixelPosY, item_texture);
+ pRenderer->DrawTextureIndexedAlpha( itemPixelPosX, itemPixelPosY, item_texture);
ZBuffer_DoFill2(&v16[itemPixelPosX + pSRZBufferLineOffsets[itemPixelPosY]], item_texture, item_counter + 1);
}
}
diff -r c532d5242055 -r c7264ab7132f GUI/GUIProgressBar.cpp
--- a/GUI/GUIProgressBar.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/GUIProgressBar.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -157,7 +157,7 @@
pRenderer->Sub01();
pRenderer->DrawTextureIndexed(80, 122, &pBardata);//прогрессбар для данжей
- pRenderer->DrawTextureTransparent(100, 146, &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconID_TurnHour, 0)->uTextureID]);
+ pRenderer->DrawTextureIndexedAlpha(100, 146, &pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(uIconID_TurnHour, 0)->uTextureID]);
//pRenderer->FillRectFast(174, 164, floorf(((double)(113 * uProgressCurrent) / (double)uProgressMax) + 0.5f),//COERCE_UNSIGNED_INT64(v4 + 6.7553994e15),
//16, pRenderer->uTargetRMask);
pRenderer->FillRectFast(174, 164, floorf(((double)(113 * uProgressCurrent) / (double)uProgressMax) + 0.5f),//COERCE_UNSIGNED_INT64(v4 + 6.7553994e15),
@@ -178,9 +178,9 @@
pRenderer->DrawTextureRGB(0, 0, &pLoadingBg);
pRenderer->SetRasterClipRect(0, 0, 639, 479);
- pRenderer->SetTextureClipRect(172, 459, 15 * (signed int)(signed __int64)((double)(300 * uProgressCurrent) / (double)uProgressMax) / 15 + 172, 471);
- pRenderer->DrawTextureTransparent(172, 459, &pLoadingProgress);
- pRenderer->ResetTextureClipRect();
+ pRenderer->SetUIClipRect(172, 459, 15 * (signed int)(signed __int64)((double)(300 * uProgressCurrent) / (double)uProgressMax) / 15 + 172, 471);
+ pRenderer->DrawTextureIndexedAlpha(172, 459, &pLoadingProgress);
+ pRenderer->ResetUIClipRect();
pRenderer->EndScene();
pRenderer->Present();
}
\ No newline at end of file
diff -r c532d5242055 -r c7264ab7132f GUI/GUIWindow.cpp
--- a/GUI/GUIWindow.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/GUIWindow.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -801,7 +801,7 @@
pWhiteColor = Color16(0xFFu, 0xFFu, 0xFFu);
pColor2 = Color16(0x15u, 0x99u, 0xE9u);
pRenderer->DrawTextureIndexed(0x1DDu, 0, pTexture_Dialogue_Background);
- pRenderer->DrawTextureTransparent(0x1D4u, 0, &pIcons_LOD->pTextures[uTextureID_right_panel_loop]);
+ pRenderer->DrawTextureIndexedAlpha(0x1D4u, 0, &pIcons_LOD->pTextures[uTextureID_right_panel_loop]);
if ( pDialogueNPCCount != uNumDialogueNPCPortraits || !uHouse_ExitPic )
{
pDialogWindow.uFrameWidth = 130;
@@ -1848,7 +1848,7 @@
draw_leather();
CharacterUI_InventoryTab_Draw(pPlayers[uActiveCharacter], true);
CharacterUI_DrawPaperdoll(pPlayers[uActiveCharacter]);
- pRenderer->DrawTextureTransparent(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY, pIcons_LOD->GetTexture(uTextureID_x_x_u));
+ pRenderer->DrawTextureIndexedAlpha(pBtn_ExitCancel->uX, pBtn_ExitCancel->uY, pIcons_LOD->GetTexture(uTextureID_x_x_u));
continue;
}
case WINDOW_ModalWindow:
@@ -1970,7 +1970,7 @@
if ( pWindow->Hint != (char *)1 )
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
pButton = (GUIButton *)pWindow->ptr_1C;
- pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[0]);
+ pRenderer->DrawTextureIndexedAlpha(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[0]);
viewparams->bRedrawGameUI = 1;
if ( pWindow->Hint )
{
@@ -1985,7 +1985,7 @@
if ( pWindow->Hint != (char *)1 )
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
pButton = (GUIButton *)pWindow->ptr_1C;
- pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[1]);
+ pRenderer->DrawTextureIndexedAlpha(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[1]);
viewparams->bRedrawGameUI = 1;
pWindow->Release();
continue;
@@ -2012,7 +2012,7 @@
if ( pWindow->Hint != (char *)1 )
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
pButton = (GUIButton *)pWindow->ptr_1C;
- pRenderer->DrawTextureTransparent(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[0]);
+ pRenderer->DrawTextureIndexedAlpha(pWindow->uFrameX, pWindow->uFrameY, pButton->pTextures[0]);
viewparams->bRedrawGameUI = 1;
if ( pWindow->Hint && pWindow->Hint != (char *)1 )
pButton->DrawLabel(pWindow->Hint, pFontCreate, 0, 0);
diff -r c532d5242055 -r c7264ab7132f GUI/UI/Books/UIMapBook.cpp
--- a/GUI/UI/Books/UIMapBook.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/Books/UIMapBook.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -40,8 +40,8 @@
POINT a2; // [sp+68h] [bp-8h]@17
pRenderer->ClearZBuffer(0, 479);
- pRenderer->DrawTextureTransparent(8, 8, pTexture_CurrentBook);
- pRenderer->DrawTextureTransparent(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId));
+ pRenderer->DrawTextureIndexedAlpha(8, 8, pTexture_CurrentBook);
+ pRenderer->DrawTextureIndexedAlpha(471, 445, pIcons_LOD->GetTexture(uExitCancelTextureId));
TownPortalWindow.uFrameX = game_viewport_x;
TownPortalWindow.uFrameY = game_viewport_y;
@@ -107,15 +107,15 @@
pWindow.DrawTitleText(pBook2Font, 0, 22, 0, pTmpBuf.data(), 3);
if ( bRecallingBeacon )
{
- pRenderer->DrawTextureTransparent(pBtn_Book_1->uX, pBtn_Book_1->uY, pTex_book_button1_on);
+ pRenderer->DrawTextureIndexedAlpha(pBtn_Book_1->uX, pBtn_Book_1->uY, pTex_book_button1_on);
v19 = pTex_book_button1_off;
}
else
{
- pRenderer->DrawTextureTransparent(pBtn_Book_1->uX, pBtn_Book_1->uY, pTex_book_button1_off);
+ pRenderer->DrawTextureIndexedAlpha(pBtn_Book_1->uX, pBtn_Book_1->uY, pTex_book_button1_off);
v19 = pTex_book_button1_on;
}
- pRenderer->DrawTextureTransparent(pBtn_Book_2->uX, pBtn_Book_2->uY, v19);
+ pRenderer->DrawTextureIndexedAlpha(pBtn_Book_2->uX, pBtn_Book_2->uY, v19);
uNumMaxBeacons = 1;
if ( HIBYTE(pPlayer->pActiveSkills[PLAYER_SKILL_WATER]) & 1 || (pPlayer->pActiveSkills[PLAYER_SKILL_WATER] & 0x80u) != 0 )
{
@@ -139,7 +139,7 @@
//if ( pSavegameThumbnails[BeaconID].pPixels != 0 )
if ( pPlayer->pInstalledBeacons[BeaconID].SaveFileID != 0 )
{
- pRenderer->DrawTextureTransparent(pLloydsBeacons_SomeXs[BeaconID], pLloydsBeacons_SomeYs[BeaconID], pTexture_CurrentBook);
+ pRenderer->DrawTextureIndexedAlpha(pLloydsBeacons_SomeXs[BeaconID], pLloydsBeacons_SomeYs[BeaconID], pTexture_CurrentBook);
pRenderer->DrawTextureRGB(pLloydsBeaconsPreviewXs[BeaconID], pLloydsBeaconsPreviewYs[BeaconID], &pSavegameThumbnails[BeaconID]);
Str = pMapStats->pInfos[pMapStats->sub_410D99_get_map_index(pPlayer->pInstalledBeacons[BeaconID].SaveFileID)].pName;
pTextHeight = pSpellFont->CalcTextHeight(Str, &pWindow, 0, 0);
@@ -176,7 +176,7 @@
}
if ( !bRecallingBeacon )
{
- pRenderer->DrawTextureTransparent(pLloydsBeacons_SomeXs[BeaconID], pLloydsBeacons_SomeYs[BeaconID], pTexture_CurrentBook);
+ pRenderer->DrawTextureIndexedAlpha(pLloydsBeacons_SomeXs[BeaconID], pLloydsBeacons_SomeYs[BeaconID], pTexture_CurrentBook);
pTextHeight = pSpellFont->CalcTextHeight(pGlobalTXT_LocalizationStrings[19], &pWindow, 0, 0);
pWindow.DrawTitleText(pSpellFont, 0, (signed int)pWindow.uFrameHeight / 2 - pTextHeight / 2, 1, pGlobalTXT_LocalizationStrings[19], 3);//Доступно
}
@@ -196,34 +196,34 @@
pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pSpellBookPagesTextr_12);
if ( BtnUp_flag || viewparams->uMapBookMapZoom / 128 >= 12 )//Button 1
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
if ( BtnDown_flag || viewparams->uMapBookMapZoom / 128 <= 3 )//Button 2
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
if ( Book_PageBtn3_flag )//Button 3
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTex_book_button3_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTex_book_button3_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
if ( Book_PageBtn4_flag )//Button 4
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTex_book_button4_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTex_book_button4_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
if ( Book_PageBtn5_flag )//Button 5
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTex_book_button5_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTex_book_button5_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
if ( Book_PageBtn6_flag )//Button 6
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTex_book_button6_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTex_book_button6_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
if ( BtnDown_flag )
viewparams->CenterOnParty2();
@@ -247,7 +247,7 @@
Book_PageBtn4_flag = 0;
Book_PageBtn3_flag = 0;
DrawBook_Map_sub(97, 49, 361, 313, 0);
- pRenderer->DrawTextureTransparent(75, 22, pTexture_mapbordr);
+ pRenderer->DrawTextureIndexedAlpha(75, 22, pTexture_mapbordr);
map_window.uFrameWidth = game_viewport_width;
map_window.uFrameHeight = game_viewport_height;
map_window.uFrameX = game_viewport_x;
diff -r c532d5242055 -r c7264ab7132f GUI/UI/Books/UINotesBooks.cpp
--- a/GUI/UI/Books/UINotesBooks.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/Books/UINotesBooks.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -105,14 +105,14 @@
pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_CurrentBook);
if ( BtnUp_flag || !books_primary_item_per_page )//Bookmark Up(Закладка вверх)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )//Bookmark Down(Закладка вниз)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
//for title
questbook_window.uFrameWidth = game_viewport_width;
@@ -157,7 +157,7 @@
pTextHeight = pAutonoteFont->CalcTextHeight(pQuestTable[achieved_awards[i]], &questbook_window, 1, 0);
if ( (signed int)(questbook_window.uFrameY + pTextHeight) > (signed int)questbook_window.uFrameHeight )
break;
- pRenderer->DrawTextureTransparent(100, (questbook_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
+ pRenderer->DrawTextureIndexedAlpha(100, (questbook_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
questbook_window.uFrameY = (questbook_window.uFrameY + pTextHeight) + 24;
}
}
@@ -172,133 +172,133 @@
change_flag = false;
pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pTexture_AutonotesBook);
if ( BtnUp_flag || !books_primary_item_per_page )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
if ( Book_PageBtn3_flag )//Potions_page_flag
{
if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)//press again(повторное нажатие)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
else//press(нажатие)
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_POTION_RECEPIE;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
}
}
else
{
if (_506568_autonote_type == AUTONOTE_POTION_RECEPIE)// default(по умолчанию при запуске окна)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 113, pTex_book_button3_on);
else//Potions_page not active(вкладка снадобья не активна)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTex_book_button3_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 113, pTex_book_button3_off);
}
if ( Book_PageBtn4_flag )//Fontains_page_flag
{
if ( _506568_autonote_type == AUTONOTE_STAT_HINT )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
else
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_STAT_HINT;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
}
}
else
{
if ( _506568_autonote_type == AUTONOTE_STAT_HINT )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 399, pViewport->uViewportTL_Y + 150, pTex_book_button4_on);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTex_book_button4_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 150, pTex_book_button4_off);
}
if ( Book_PageBtn5_flag )//Autonotes_Obelisks_page_flag
{
if ( _506568_autonote_type == AUTONOTE_OBELISK)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
else
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_OBELISK;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
}
}
else
{
if ( _506568_autonote_type == AUTONOTE_OBELISK)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 188, pTex_book_button5_on);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTex_book_button5_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 188, pTex_book_button5_off);
}
if ( Book_PageBtn6_flag )//Autonotes_Seer_page_flag
{
if ( _506568_autonote_type == AUTONOTE_SEER)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
else
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_SEER;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
}
}
else
{
if ( _506568_autonote_type == AUTONOTE_SEER)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 226, pTex_book_button6_on);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTex_book_button6_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 226, pTex_book_button6_off);
}
if ( Autonotes_Misc_page_flag )
{
if ( _506568_autonote_type == AUTONOTE_MISC)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
else
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_MISC;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
}
}
else
{
if ( _506568_autonote_type == AUTONOTE_MISC)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 264, pTex_book_button7_on);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 263, pTex_book_button7_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 263, pTex_book_button7_off);
}
if ( Autonotes_Instructors_page_flag )
{
if ( _506568_autonote_type == AUTONOTE_TEACHER)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
else
{
change_flag = true;
pAudioPlayer->PlaySound(SOUND_StartMainChoice02, 0, 0, -1, 0, 0, 0, 0);
_506568_autonote_type = AUTONOTE_TEACHER;
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
}
}
else
{
if ( _506568_autonote_type == AUTONOTE_TEACHER)
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 397, pViewport->uViewportTL_Y + 302, pTex_book_button8_on);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 302, pTex_book_button8_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 408, pViewport->uViewportTL_Y + 302, pTex_book_button8_off);
}
//for title
@@ -372,7 +372,7 @@
pTextHeight = pAutonoteFont->CalcTextHeight(pAutonoteTxt[achieved_awards[i]].pText, &autonotes_window, 1, 0);
if ( (signed int)(autonotes_window.uFrameY + pTextHeight) > (signed int)autonotes_window.uFrameHeight )
break;
- pRenderer->DrawTextureTransparent(100, (autonotes_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
+ pRenderer->DrawTextureIndexedAlpha(100, (autonotes_window.uFrameY + pTextHeight) + 12, pSpellBookPagesTextr_10);
autonotes_window.uFrameY = (autonotes_window.uFrameY + pTextHeight) + 24;
}
}
@@ -386,14 +386,14 @@
pRenderer->DrawTextureIndexed(pViewport->uViewportTL_X, pViewport->uViewportTL_Y, pSpellBookPagesTextr_11);
if ( BtnUp_flag || !books_primary_item_per_page )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 2, pTex_book_button1_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 1, pTex_book_button1_on);
if ( BtnDown_flag || books_primary_item_per_page + num_achieved_awards >= full_num_items_in_book )
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 407, pViewport->uViewportTL_Y + 38, pTex_book_button2_off);
else
- pRenderer->DrawTextureTransparent(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportTL_X + 398, pViewport->uViewportTL_Y + 38, pTex_book_button2_on);
if ( !Journal_limitation_factor[books_primary_item_per_page] )//for title
{
diff -r c532d5242055 -r c7264ab7132f GUI/UI/Books/UISpellBook.cpp
--- a/GUI/UI/Books/UISpellBook.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/Books/UISpellBook.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -105,7 +105,7 @@
pX_coord = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos;
pY_coord = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Ypos;
if ( pTexture->pBits & 0x200 )
- pRenderer->DrawTextureTransparent(pX_coord, pY_coord, pTexture);
+ pRenderer->DrawTextureIndexedAlpha(pX_coord, pY_coord, pTexture);
else
pRenderer->DrawTextureIndexed(pX_coord, pY_coord, pTexture);
pRenderer->DrawMaskToZBuffer(pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][i]].Xpos,
@@ -125,7 +125,7 @@
pX_coord = pViewport->uViewportTL_X + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Xpos;
pY_coord = pViewport->uViewportTL_Y + pIconPos[player->lastOpenedSpellbookPage][pSpellbookSpellIndices[player->lastOpenedSpellbookPage][v10]].Ypos;
if ( SBPageCSpellsTextureList[v10]->pBits & 0x200 )
- pRenderer->DrawTextureTransparent(pX_coord, pY_coord, SBPageCSpellsTextureList[v10]);
+ pRenderer->DrawTextureIndexedAlpha(pX_coord, pY_coord, SBPageCSpellsTextureList[v10]);
else
pRenderer->DrawTextureIndexed(pX_coord, pY_coord, SBPageCSpellsTextureList[v10]);
}
@@ -148,7 +148,7 @@
pX_coord = texture_tab_coord0[i][0];
pY_coord = texture_tab_coord0[i][1];
}
- pRenderer->DrawTextureTransparent(pX_coord, pY_coord, pPageTexture);
+ pRenderer->DrawTextureIndexedAlpha(pX_coord, pY_coord, pPageTexture);
}
}
}
\ No newline at end of file
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UICharacter.cpp
--- a/GUI/UI/UICharacter.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UICharacter.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -769,11 +769,11 @@
break;
}
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
pRenderer->DrawTextureIndexed(467, 0, pIcons_LOD->GetTexture(uTextureID_BACKDOLL));//Подложка
if ( IsPlayerWearingWatersuit[uPlayerID] )//акваланг
{
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]));
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]));
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]), player->pEquipment.uArmor);
//Рука не занята или ...
@@ -781,7 +781,7 @@
|| ( player->GetMainHandItem()->GetItemEquipType() != EQUIP_TWO_HANDED)
&& (player->GetMainHandItem()->GetItemEquipType() != PLAYER_SKILL_SPEAR
|| player->GetItem(&PlayerEquipment::uShield)) )
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1],
pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1]));
//-----------------------------------------------------(Hand/Рука)---------------------------------------------------------------
if ( player->GetItem(&PlayerEquipment::uMainHand) )
@@ -817,7 +817,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v166, TEXTURE_16BIT_PALETTE)));
@@ -859,7 +859,7 @@
else if ( !(item->uAttributes & ITEM_IDENTIFIED) )//не опознанный лук зелёный
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)));
else // опознанный лук
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)));
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(item->GetIconName(), TEXTURE_16BIT_PALETTE)),
@@ -918,7 +918,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]));
else
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]));
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_texture[pBodyComplection][index]),
@@ -926,7 +926,7 @@
}
}
//-------------------------------(Paperdoll/Кукла)-------------------------------------------
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]));
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX, pPaperdoll_BodyY, pIcons_LOD->GetTexture(papredoll_dbods[uPlayerID - 1]));
//-------------------------------(Armor/Броня)-----------------------------------------------
if ( player->GetItem(&PlayerEquipment::uArmor) )
{
@@ -979,7 +979,7 @@
else if ( !(item->uAttributes & ITEM_IDENTIFIED) )
pRenderer->DrawTransparentGreenShade(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]);
else
- pRenderer->DrawTextureTransparent(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]);
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]]);
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(item_X, item_Y, &pIcons_LOD->pTextures[paperdoll_armor_texture[pBodyComplection][index][0]],
@@ -1033,7 +1033,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v59));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v59));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v59));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v59));
@@ -1046,7 +1046,7 @@
|| ( player->GetMainHandItem()->GetItemEquipType() != EQUIP_TWO_HANDED)
&& (player->GetMainHandItem()->GetPlayerSkillType() != PLAYER_SKILL_SPEAR
|| player->GetItem(&PlayerEquipment::uShield)) )
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_LeftHand[pBodyComplection][0],
pPaperdoll_BodyY + pPaperdoll_LeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlads[uPlayerID - 1]));
//--------------------------------------------(Belt/Пояс)-------------------------------------------------------
if ( player->GetItem(&PlayerEquipment::uBelt))
@@ -1096,7 +1096,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v75));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v75));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v75));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v75));
@@ -1172,7 +1172,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v94));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v94));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v94));
@@ -1209,7 +1209,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_armor_texture[pBodyComplection][index][1]));
@@ -1272,7 +1272,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]));
else
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]));
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(paperdoll_cloak_collar_texture[pBodyComplection][index]),
@@ -1284,7 +1284,7 @@
if ( player->uCurrentFace == 12 || player->uCurrentFace == 13 )
{
if ( papredoll_dbrds[player->uCurrentFace] != pIcons_LOD->FindTextureByName("Pending") )
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_Beards[2 * player->uCurrentFace - 24],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_Beards[2 * player->uCurrentFace - 24],
pPaperdoll_BodyY + pPaperdoll_Beards[2 * player->uCurrentFace - 23],
pIcons_LOD->GetTexture(papredoll_dbrds[player->uCurrentFace]));
}
@@ -1344,7 +1344,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(v127));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v127));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v127));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v127));
@@ -1386,7 +1386,7 @@
else if ( item->uAttributes & ITEM_BROKEN )
pRenderer->DrawTransparentRedShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)));
else if ( item->uAttributes & ITEM_IDENTIFIED )
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)));
else
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(pIcons_LOD->LoadTexture(v181, TEXTURE_16BIT_PALETTE)));
@@ -1455,24 +1455,24 @@
else if ( !(item->uAttributes & ITEM_IDENTIFIED) )
pRenderer->DrawTransparentGreenShade(item_X, item_Y, pIcons_LOD->GetTexture(v153));
else
- pRenderer->DrawTextureTransparent(item_X, item_Y, pIcons_LOD->GetTexture(v153));
+ pRenderer->DrawTextureIndexedAlpha(item_X, item_Y, pIcons_LOD->GetTexture(v153));
if ( two_handed_left_fist )//two-handed - left fist/двуручие - левая кисть
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdollLeftEmptyHand[pBodyComplection][0],
pPaperdoll_BodyY + pPaperdollLeftEmptyHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlhs[uPlayerID - 1]));
if ( !bRingsShownInCharScreen )
pRenderer->DrawMaskToZBuffer(item_X, item_Y, pIcons_LOD->GetTexture(v153), player->pEquipment.uShield);
}
}
//--------------------------------------------------------(RightHand/Правая кисть)--------------------------------------------------
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1]));
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_RightHand[pBodyComplection][0], pPaperdoll_BodyY + pPaperdoll_RightHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_drhs[uPlayerID - 1]));
//---------------------------------------------(two-handed - hand/Двуручие - рука)--------------------------------------------------
if ( player->GetItem(&PlayerEquipment::uMainHand) )
{
if ( player->GetMainHandItem()->GetItemEquipType() == EQUIP_TWO_HANDED
|| player->GetMainHandItem()->GetPlayerSkillType() == PLAYER_SKILL_SPEAR
&& !player->GetItem(&PlayerEquipment::uShield) )
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0],
pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1], pIcons_LOD->GetTexture(papredoll_dlaus[uPlayerID - 1]));
}
//--------------------------------------------------------(two-handed - fist/двуручие - кисть)----------------------------------------------------
@@ -1482,13 +1482,13 @@
if ( item->GetItemEquipType() == EQUIP_TWO_HANDED
|| item->GetPlayerSkillType() == PLAYER_SKILL_SPEAR
&& !player->GetItem(&PlayerEquipment::uShield) )
- pRenderer->DrawTextureTransparent(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0],
+ pRenderer->DrawTextureIndexedAlpha(pPaperdoll_BodyX + pPaperdoll_SecondLeftHand[pBodyComplection][0],
pPaperdoll_BodyY + pPaperdoll_SecondLeftHand[pBodyComplection][1],
pIcons_LOD->GetTexture(papredoll_dlhus[uPlayerID - 1]));
}
if ( !bRingsShownInCharScreen )//рисование лупы
- pRenderer->DrawTextureTransparent(603, 299, pIcons_LOD->GetTexture(uTextureID_MAGNIF_B));
- pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));//обрамление
+ pRenderer->DrawTextureIndexedAlpha(603, 299, pIcons_LOD->GetTexture(uTextureID_MAGNIF_B));
+ pRenderer->DrawTextureIndexedAlpha(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));//обрамление
}
//----- (0041A2D1) --------------------------------------------------------
@@ -1551,7 +1551,7 @@
if (player->pInventoryItemList[player->pInventoryMatrix[i] - 1].IsBroken())
pRenderer->DrawTransparentRedShade(uCellX, uCellY, pTexture);
else
- pRenderer->DrawTextureTransparent(uCellX, uCellY, pTexture);
+ pRenderer->DrawTextureIndexedAlpha(uCellX, uCellY, pTexture);
}
else
pRenderer->DrawTransparentGreenShade(uCellX, uCellY, pTexture);
@@ -1592,7 +1592,7 @@
else if (!item->IsIdentified())
pRenderer->DrawTransparentGreenShade(x, y, item_texture);
else
- pRenderer->DrawTextureTransparent(x, y, item_texture);
+ pRenderer->DrawTextureIndexedAlpha(x, y, item_texture);
pRenderer->ZBuffer_Fill_2(x, y, item_texture, id);
}
@@ -1602,8 +1602,8 @@
void CharacterUI_DrawPaperdollWithRingOverlay(Player *player)
{
CharacterUI_DrawPaperdoll(player);
- pRenderer->DrawTextureTransparent(0x1D9u, 0, pIcons_LOD->GetTexture(uTextureID_BACKHAND));
- pRenderer->DrawTextureTransparent(0x1D4u, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));
+ pRenderer->DrawTextureIndexedAlpha(0x1D9u, 0, pIcons_LOD->GetTexture(uTextureID_BACKHAND));
+ pRenderer->DrawTextureIndexedAlpha(0x1D4u, 0, pIcons_LOD->GetTexture(uTextureID_right_panel_loop));
pRenderer->DrawTextureIndexed(pCharacterScreen_DetalizBtn->uX, pCharacterScreen_DetalizBtn->uY,
pIcons_LOD->GetTexture(uTextureID_detaliz_close_button));
for (uint i = 0; i < 6; ++i)
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UIGuilds.cpp
--- a/GUI/UI/UIGuilds.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UIGuilds.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -162,7 +162,7 @@
{
if ( pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C-139][v6].uItemID )
{
- pRenderer->DrawTextureTransparent(pX, 90, ItemsInShopTexture[v6]);
+ pRenderer->DrawTextureIndexedAlpha(pX, 90, ItemsInShopTexture[v6]);
ZBuffer_DoFill((int *)((char *)pRenderer->pActiveZBuffer + v62 + 230528), ItemsInShopTexture[v6], v6 + 1);
}
v62 += 280;
@@ -174,7 +174,7 @@
{
if (pParty->SpellBooksInGuilds[window_SpeakInHouse->par1C-139][v7].uItemID)
{
- pRenderer->DrawTextureTransparent(pX, 250, ItemsInShopTexture[v7]);
+ pRenderer->DrawTextureIndexedAlpha(pX, 250, ItemsInShopTexture[v7]);
ZBuffer_DoFill((int *)((char *)pRenderer->pActiveZBuffer + v62 + 638448), ItemsInShopTexture[v7], v7 + 1);
}
v62 += 280;
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UIMainMenu.cpp
--- a/GUI/UI/UIMainMenu.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UIMainMenu.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -33,8 +33,6 @@
for (uint i = 0; i < window->GetHeight(); ++i)
pSRZBufferLineOffsets[i] = window->GetWidth() * i;
- pRenderer->ResetTextureClipRect();
-
uTextureID_FONTPAL = pIcons_LOD->LoadTexture("FONTPAL", TEXTURE_16BIT_PALETTE);
pFontArrus = LoadFont("arrus.fnt", "FONTPAL", nullptr);
@@ -321,10 +319,10 @@
{
pRenderer->BeginScene();
pRenderer->DrawTextureRGB(0, 0, &mm6title_texture);
- pRenderer->SetTextureClipRect(credit_window.uFrameX, credit_window.uFrameY, credit_window.uFrameX + credit_window.uFrameWidth,
+ pRenderer->SetUIClipRect(credit_window.uFrameX, credit_window.uFrameY, credit_window.uFrameX + credit_window.uFrameWidth,
credit_window.uFrameY + credit_window.uFrameHeight);
pRenderer->CreditsTextureScroll(credit_window.uFrameX, credit_window.uFrameY, 0, move_Y, &cred_texture);
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
pRenderer->EndScene();
++move_Y;
if ( move_Y >= cred_texture.uHeight )
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UIPartyCreation.cpp
--- a/GUI/UI/UIPartyCreation.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UIPartyCreation.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -110,7 +110,7 @@
uPlayerCreationUI_SkySliderPos = (GetTickCount() % 12800) / 20;
pRenderer->DrawTextureIndexed(uPlayerCreationUI_SkySliderPos, 2, pTexture_MAKESKY);
pRenderer->DrawTextureIndexed(uPlayerCreationUI_SkySliderPos - window->GetWidth(), 2, pTexture_MAKESKY);
- pRenderer->DrawTextureTransparent(0, 0, pTexture_MAKETOP);
+ pRenderer->DrawTextureIndexedAlpha(0, 0, pTexture_MAKETOP);
uPlayerCreationUI_SelectedCharacter = (pGUIWindow_CurrentMenu->pCurrentPosActiveItem - pGUIWindow_CurrentMenu->pStartingPosActiveItem) / 7;
switch (uPlayerCreationUI_SelectedCharacter)
@@ -125,18 +125,18 @@
pTextCenter = pFontCChar->AlignText_Center(window->GetWidth(), pGlobalTXT_LocalizationStrings[51]);
pGUIWindow_CurrentMenu->DrawText(pFontCChar, pTextCenter + 1, 0, 0, pGlobalTXT_LocalizationStrings[51], 0, 0, 0);//С О З Д А Т Ь О Т Р Я Д
- pRenderer->DrawTextureTransparent(17, 35, pPlayerPortraits[pParty->pPlayers[0].uCurrentFace]);
- pRenderer->DrawTextureTransparent(176, 35, pPlayerPortraits[pParty->pPlayers[1].uCurrentFace]);
- pRenderer->DrawTextureTransparent(335, 35, pPlayerPortraits[pParty->pPlayers[2].uCurrentFace]);
- pRenderer->DrawTextureTransparent(494, 35, pPlayerPortraits[pParty->pPlayers[3].uCurrentFace]);
+ pRenderer->DrawTextureIndexedAlpha(17, 35, pPlayerPortraits[pParty->pPlayers[0].uCurrentFace]);
+ pRenderer->DrawTextureIndexedAlpha(176, 35, pPlayerPortraits[pParty->pPlayers[1].uCurrentFace]);
+ pRenderer->DrawTextureIndexedAlpha(335, 35, pPlayerPortraits[pParty->pPlayers[2].uCurrentFace]);
+ pRenderer->DrawTextureIndexedAlpha(494, 35, pPlayerPortraits[pParty->pPlayers[3].uCurrentFace]);
pFrame = pIconsFrameTable->GetFrame(uIconID_CharacterFrame, pEventTimer->uStartTime);
- pRenderer->DrawTextureTransparent(pX, 29, &pIcons_LOD->pTextures[pFrame->uTextureID]);
+ pRenderer->DrawTextureIndexedAlpha(pX, 29, &pIcons_LOD->pTextures[pFrame->uTextureID]);
uPosActiveItem = pGUIWindow_CurrentMenu->GetControl(pGUIWindow_CurrentMenu->pCurrentPosActiveItem);
uPlayerCreationUI_ArrowAnim = 19 - (GetTickCount() % 500) / 25;
- pRenderer->DrawTextureTransparent(uPosActiveItem->uZ - 4, uPosActiveItem->uY, pTextures_arrowl[uPlayerCreationUI_ArrowAnim]);
- pRenderer->DrawTextureTransparent(uPosActiveItem->uX - 12, uPosActiveItem->uY, pTextures_arrowr[uPlayerCreationUI_ArrowAnim]);
+ pRenderer->DrawTextureIndexedAlpha(uPosActiveItem->uZ - 4, uPosActiveItem->uY, pTextures_arrowl[uPlayerCreationUI_ArrowAnim]);
+ pRenderer->DrawTextureIndexedAlpha(uPosActiveItem->uX - 12, uPosActiveItem->uY, pTextures_arrowr[uPlayerCreationUI_ArrowAnim]);
memset(pText, 0, 200);
strcpy(pText, pGlobalTXT_LocalizationStrings[205]);// "Skills"
@@ -151,7 +151,7 @@
for (int i = 0; i < 4; ++i)
{
pGUIWindow_CurrentMenu->DrawText(pFontCreate, pIntervalX + 73, 100, 0, pClassNames[pParty->pPlayers[i].classType], 0, 0, 0);
- pRenderer->DrawTextureTransparent(pIntervalX + 77, 50, pTexture_IC_KNIGHT[pParty->pPlayers[i].classType / 4]);
+ pRenderer->DrawTextureIndexedAlpha(pIntervalX + 77, 50, pTexture_IC_KNIGHT[pParty->pPlayers[i].classType / 4]);
if ( pGUIWindow_CurrentMenu->receives_keyboard_input_2 != WINDOW_INPUT_NONE && pGUIWindow_CurrentMenu->ptr_1C == (void *)i )
{
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UIPopup.cpp
--- a/GUI/UI/UIPopup.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UIPopup.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -67,45 +67,48 @@
unsigned int coord_x; // [sp+2Ch] [bp-Ch]@3
unsigned int coord_y; // [sp+34h] [bp-4h]@5
- pRenderer->SetTextureClipRect(uX, uY, uX + uWidth, uY + uHeight);
- if ( pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureWidth && pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureHeight)
+ auto parchment = pIcons_LOD->GetTexture(uTextureID_Parchment);
+
+ if ( parchment->uTextureWidth && parchment->uTextureHeight)
{
- uNumTiles = uWidth / pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureWidth;
- if ( uWidth % pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureWidth )
+ pRenderer->SetUIClipRect(uX, uY, uX + uWidth, uY + uHeight);
+
+ uNumTiles = uWidth / parchment->uTextureWidth;
+ if ( uWidth % parchment->uTextureWidth )
++uNumTiles;
coord_y = uY;
- for ( uint j = 0; j <= uHeight / pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureHeight; j++ )
+ for ( uint j = 0; j <= uHeight / parchment->uTextureHeight; j++ )
{
- coord_x = uX - pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureWidth;
+ coord_x = uX - parchment->uTextureWidth;
for ( uint i = uNumTiles + 1; i; --i )
{
- coord_x += pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureWidth;
- pRenderer->DrawTextureIndexed(coord_x, coord_y, pIcons_LOD->GetTexture(uTextureID_Parchment));
+ coord_x += parchment->uTextureWidth;
+ pRenderer->DrawTextureIndexed(coord_x, coord_y, parchment);
}
- coord_y += pIcons_LOD->GetTexture(uTextureID_Parchment)->uTextureHeight;
+ coord_y += parchment->uTextureHeight;
}
- pRenderer->DrawTextureTransparent(uX, uY, pIcons_LOD->GetTexture(uTextureID_5076AC));
- pRenderer->DrawTextureTransparent(uX, uY + uHeight - 32, pIcons_LOD->GetTexture(uTextureID_5076B4));
- pRenderer->DrawTextureTransparent(uX + uWidth - 32, uY, pIcons_LOD->GetTexture(uTextureID_5076A8));
- pRenderer->DrawTextureTransparent(uX + uWidth - 32, uY + uHeight - 32, pIcons_LOD->GetTexture(uTextureID_5076B0));
+ pRenderer->DrawTextureIndexedAlpha(uX, uY, pIcons_LOD->GetTexture(uTextureID_5076AC));
+ pRenderer->DrawTextureIndexedAlpha(uX, uY + uHeight - 32, pIcons_LOD->GetTexture(uTextureID_5076B4));
+ pRenderer->DrawTextureIndexedAlpha(uX + uWidth - 32, uY, pIcons_LOD->GetTexture(uTextureID_5076A8));
+ pRenderer->DrawTextureIndexedAlpha(uX + uWidth - 32, uY + uHeight - 32, pIcons_LOD->GetTexture(uTextureID_5076B0));
if ( uWidth > 64 )
{
- pRenderer->SetTextureClipRect(uX + 32, uY, uX + uWidth - 32, uY + uHeight);
- pRenderer->DrawTextureTransparent(uX + 32, uY, pIcons_LOD->GetTexture(uTextureID_507698));
- pRenderer->DrawTextureTransparent(uX + 32, uY + uHeight - 10, pIcons_LOD->GetTexture(uTextureID_5076A4));
+ pRenderer->SetUIClipRect(uX + 32, uY, uX + uWidth - 32, uY + uHeight);
+ pRenderer->DrawTextureIndexedAlpha(uX + 32, uY, pIcons_LOD->GetTexture(uTextureID_507698));
+ pRenderer->DrawTextureIndexedAlpha(uX + 32, uY + uHeight - 10, pIcons_LOD->GetTexture(uTextureID_5076A4));
if ( uWidth > 512 )
{
- pRenderer->DrawTextureTransparent(uX + 544, uY, pIcons_LOD->GetTexture(uTextureID_507698));
- pRenderer->DrawTextureTransparent(uX + 544, uY + uHeight - 10, pIcons_LOD->GetTexture(uTextureID_5076A4));
+ pRenderer->DrawTextureIndexedAlpha(uX + 544, uY, pIcons_LOD->GetTexture(uTextureID_507698));
+ pRenderer->DrawTextureIndexedAlpha(uX + 544, uY + uHeight - 10, pIcons_LOD->GetTexture(uTextureID_5076A4));
}
}
if ( uHeight > 64 )
{
- pRenderer->SetTextureClipRect(uX, uY + 32, uX + uWidth, uY + uHeight - 32);
- pRenderer->DrawTextureTransparent(uX, uY + 32, pIcons_LOD->GetTexture(uTextureID_5076A0));
- pRenderer->DrawTextureTransparent(uX + uWidth - 10, uY + 32, pIcons_LOD->GetTexture(uTextureID_50769C));
+ pRenderer->SetUIClipRect(uX, uY + 32, uX + uWidth, uY + uHeight - 32);
+ pRenderer->DrawTextureIndexedAlpha(uX, uY + 32, pIcons_LOD->GetTexture(uTextureID_5076A0));
+ pRenderer->DrawTextureIndexedAlpha(uX + uWidth - 10, uY + 32, pIcons_LOD->GetTexture(uTextureID_50769C));
}
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
}
@@ -199,7 +202,7 @@
if (inspect_item->IsBroken())
{
iteminfo_window.DrawMessageBox(0);
- pRenderer->SetTextureClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
+ pRenderer->SetUIClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 12,
iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 12);
iteminfo_window.uFrameWidth -= 24;
@@ -214,7 +217,7 @@
iteminfo_window.DrawTitleText(pFontArrus, 0, 0xCu, Color16(0xFFu, 0xFFu, 0x9Bu), pText, 3);
iteminfo_window.DrawTitleText(pFontArrus, 0x64u, ((signed int)iteminfo_window.uFrameHeight >> 1) - pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[32], &iteminfo_window, 0, 0) / 2,
Color16(0xFFu, 0x19u, 0x19u), pGlobalTXT_LocalizationStrings[32], 3); //"Broken Item"
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
if ( !areWeLoadingTexture )
{
pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE)->Release();
@@ -225,17 +228,17 @@
if (!inspect_item->IsIdentified())
{
iteminfo_window.DrawMessageBox(0);
- pRenderer->SetTextureClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
+ pRenderer->SetUIClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 12, iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 12);
iteminfo_window.uFrameWidth -= 24;
iteminfo_window.uFrameHeight -= 12;
iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1;
iteminfo_window.uFrameW = iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 1;
- pRenderer->DrawTextureTransparent(iteminfo_window.uFrameX + v78, v81 + iteminfo_window.uFrameY + 30, pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE));
+ pRenderer->DrawTextureIndexedAlpha(iteminfo_window.uFrameX + v78, v81 + iteminfo_window.uFrameY + 30, pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE));
iteminfo_window.DrawTitleText(pFontArrus, 0, 0xCu, Color16(0xFFu, 0xFFu, 0x9Bu), pItemsTable->pItems[inspect_item->uItemID].pUnidentifiedName, 3);
iteminfo_window.DrawTitleText(pFontArrus, 0x64u, ((signed int)iteminfo_window.uFrameHeight >> 1) - pFontArrus->CalcTextHeight(pGlobalTXT_LocalizationStrings[232], &iteminfo_window, 0, 0) / 2,
Color16(0xFFu, 0x19u, 0x19u), pGlobalTXT_LocalizationStrings[232], 3);//"Not Identified"
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
if ( !areWeLoadingTexture )
{
pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE)->Release();
@@ -337,13 +340,13 @@
iteminfo_window.uFrameW = iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 1;
iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1;
iteminfo_window.DrawMessageBox(0);
- pRenderer->SetTextureClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
+ pRenderer->SetUIClipRect(iteminfo_window.uFrameX + 12, iteminfo_window.uFrameY + 12,
iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 12, iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 12);
iteminfo_window.uFrameWidth -= 12;
iteminfo_window.uFrameHeight -= 12;
iteminfo_window.uFrameZ = iteminfo_window.uFrameX + iteminfo_window.uFrameWidth - 1;
iteminfo_window.uFrameW = iteminfo_window.uFrameY + iteminfo_window.uFrameHeight - 1;
- pRenderer->DrawTextureTransparent(iteminfo_window.uFrameX + v78,
+ pRenderer->DrawTextureIndexedAlpha(iteminfo_window.uFrameX + v78,
iteminfo_window.uFrameY + (signed int)(iteminfo_window.uFrameHeight - pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE)->uTextureHeight) / 2,
pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE));
@@ -370,7 +373,7 @@
{
sprintf(pTmpBuf.data(), "%s: %lu", pGlobalTXT_LocalizationStrings[465], v77);//"Value"
iteminfo_window.DrawText(pFontComic, 100, iteminfo_window.uFrameHeight - LOBYTE(pFontComic->uFontHeight), 0, pTmpBuf.data(), 0, 0, 0);
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
else
{
@@ -407,7 +410,7 @@
{
if ( !(inspect_item->uAttributes & ITEM_HARDENED) )
{
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
if ( !areWeLoadingTexture )
{
pIcons_LOD->LoadTexturePtr(inspect_item->GetIconName(), TEXTURE_16BIT_PALETTE)->Release();
@@ -420,7 +423,7 @@
LOWORD(inspect_item->uAttributes) = r_mask;
iteminfo_window.DrawText(pFontComic, pFontComic->GetLineWidth(pTmpBuf.data()) + 132,
iteminfo_window.uFrameHeight - LOBYTE(pFontComic->uFontHeight), inspect_item->uAttributes, pText, 0, 0, 0);
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
if ( !areWeLoadingTexture )
{
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UIShops.cpp
--- a/GUI/UI/UIShops.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UIShops.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -88,7 +88,7 @@
{
if ( pParty->StandartItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][i].uItemID)
{
- pRenderer->DrawTextureTransparent((60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X, weapons_Ypos[i] + 30, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha((60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X, weapons_Ypos[i] + 30, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[(60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X + window->GetWidth() * (weapons_Ypos[i] + 30)], ItemsInShopTexture[i], i + 1);
}
item_X += 70;
@@ -139,7 +139,7 @@
{
if (pParty->SpecialItemsInShops[(unsigned int)window_SpeakInHouse->ptr_1C][i].uItemID)
{
- pRenderer->DrawTextureTransparent((60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X, weapons_Ypos[i] + 30, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha((60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X, weapons_Ypos[i] + 30, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[(60 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_X + window->GetWidth() * (weapons_Ypos[i] + 30)], ItemsInShopTexture[i], i + 1);
}
item_X += 70;
@@ -416,12 +416,12 @@
{
if ( i >= 4 ) //low row
{
- pRenderer->DrawTextureTransparent((90 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x - 420, 126, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha((90 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x - 420, 126, ItemsInShopTexture[i]);
v59 = (90 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x + 80220;
}
else
{
- pRenderer->DrawTextureTransparent(( 86 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x, 98 - ItemsInShopTexture[i]->uTextureHeight, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(( 86 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x, 98 - ItemsInShopTexture[i]->uTextureHeight, ItemsInShopTexture[i]);
v59 = item_x + (86 - (ItemsInShopTexture[i]->uTextureWidth / 2)) + window->GetWidth() * (98 - ItemsInShopTexture[i]->uTextureHeight);
}
ZBuffer_DoFill(&pRenderer->pActiveZBuffer[v59], ItemsInShopTexture[i], i + 1);
@@ -475,12 +475,12 @@
{
if ( i >= 4 )
{
- pRenderer->DrawTextureTransparent(item_x + (90 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) - 420, 126, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(item_x + (90 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) - 420, 126, ItemsInShopTexture[i]);
v59 = item_x + (90 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + 80220;
}
else
{
- pRenderer->DrawTextureTransparent(86 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2) + item_x, 98 - ItemsInShopTexture[i]->uTextureHeight, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(86 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2) + item_x, 98 - ItemsInShopTexture[i]->uTextureHeight, ItemsInShopTexture[i]);
v59 = (86 - ((signed int)ItemsInShopTexture[i]->uTextureWidth / 2)) + item_x + window->GetWidth() * (98 - ItemsInShopTexture[i]->uTextureHeight);
}
ZBuffer_DoFill(&pRenderer->pActiveZBuffer[v59], ItemsInShopTexture[i], i + 1);
@@ -774,7 +774,7 @@
}
else if ( (signed int)product_width_1row < 18 )
product_width_1row = 18;
- pRenderer->DrawTextureTransparent(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_1row + window->GetWidth() * product_height_1row], ItemsInShopTexture[i], i + 1);
}
}
@@ -799,7 +799,7 @@
if ( (signed int)product_width_2row < 18 )
product_width_2row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_2row + window->GetWidth() * product_height_2row], ItemsInShopTexture[i + 6], i + 7);
}
}
@@ -862,7 +862,7 @@
if ( (signed int)product_width_1row < 18 )
product_width_1row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_1row + window->GetWidth() * product_height_1row], ItemsInShopTexture[i], i + 1);
}
}
@@ -887,7 +887,7 @@
if ( (signed int)product_width_2row < 18 )
product_width_2row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_2row + window->GetWidth() * product_height_2row], ItemsInShopTexture[i + 6], i + 7);
}
}
@@ -1151,7 +1151,7 @@
if ( (signed int)product_width_1row < 18 )
product_width_1row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_1row + window->GetWidth() * product_height_1row], ItemsInShopTexture[i], i + 1);
}
}
@@ -1174,7 +1174,7 @@
if ( (signed int)product_width_2row < 18 )
product_width_2row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_2row + window->GetWidth() * product_height_2row], ItemsInShopTexture[i + 6], i + 7);
}
}
@@ -1237,7 +1237,7 @@
if ( (signed int)product_width_1row < 18 )
product_width_1row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_1row, product_height_1row, ItemsInShopTexture[i]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_1row + window->GetWidth() * product_height_1row], ItemsInShopTexture[i], i + 1);
}
}
@@ -1262,7 +1262,7 @@
if ( (signed int)product_width_2row < 18 )
product_width_2row = 18;
}
- pRenderer->DrawTextureTransparent(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
+ pRenderer->DrawTextureIndexedAlpha(product_width_2row, product_height_2row, ItemsInShopTexture[i + 6]);
ZBuffer_DoFill2(&pRenderer->pActiveZBuffer[product_width_2row + window->GetWidth() * product_height_2row], ItemsInShopTexture[i + 6], i + 7);
}
}
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UITransition.cpp
--- a/GUI/UI/UITransition.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UITransition.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -137,7 +137,7 @@
memcpy(&travel_window, pPrimaryWindow, sizeof(travel_window));
pOutdoor->GetTravelDestination(pParty->vPosition.x, pParty->vPosition.y, pDestinationMapName, 20);
pRenderer->DrawTextureIndexed(477, 0, pTexture_Dialogue_Background);
- pRenderer->DrawTextureTransparent(468, 0, &pIcons_LOD->pTextures[uTextureID_right_panel_loop]);
+ pRenderer->DrawTextureIndexedAlpha(468, 0, &pIcons_LOD->pTextures[uTextureID_right_panel_loop]);
pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0], pNPCPortraits_y[0][0], pTexture_outside);
pRenderer->DrawTextureIndexed(556, 451, pIcons_LOD->GetTexture(uTextureID_x_x_u));
pRenderer->DrawTextureIndexed(476, 451, pIcons_LOD->GetTexture(uTextureID_x_ok_u));
@@ -177,7 +177,7 @@
pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0] - 4, pNPCPortraits_y[0][0] - 4, pIcons_LOD->GetTexture(uTextureID_50795C));
pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0], pNPCPortraits_y[0][0], pTexture_outside);
uTextureID_right_panel_loop = uTextureID_right_panel;
- pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
+ pRenderer->DrawTextureIndexedAlpha(468, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
pRenderer->DrawTextureIndexed(556, 451, pIcons_LOD->GetTexture(uTextureID_x_x_u));
pRenderer->DrawTextureIndexed(476, 451, pIcons_LOD->GetTexture(uTextureID_x_ok_u));
map_id = pMapStats->GetMapInfo(pCurrentMapName);
diff -r c532d5242055 -r c7264ab7132f GUI/UI/UiGame.cpp
--- a/GUI/UI/UiGame.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/GUI/UI/UiGame.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -382,7 +382,7 @@
window.uFrameWidth -= 10;
window.uFrameZ -= 10;
pRenderer->DrawTextureIndexed(477, 0, pTexture_Dialogue_Background);
- pRenderer->DrawTextureTransparent(468, 0, (Texture *)(uTextureID_right_panel_loop != -1 ? &pIcons_LOD->pTextures[uTextureID_right_panel_loop] : 0));
+ pRenderer->DrawTextureIndexedAlpha(468, 0, (Texture *)(uTextureID_right_panel_loop != -1 ? &pIcons_LOD->pTextures[uTextureID_right_panel_loop] : 0));
pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0] - 4, pNPCPortraits_y[0][0] - 4, (Texture *)(uTextureID_50795C != -1 ? &pIcons_LOD->pTextures[uTextureID_50795C] : 0));
pRenderer->DrawTextureIndexed(pNPCPortraits_x[0][0], pNPCPortraits_y[0][0], pDialogueNPCPortraits[0]);
@@ -799,7 +799,7 @@
v13 = pTextures_PlayerFaces[(unsigned int)window->ptr_1C][v15->uTextureID - 1];
}
- pRenderer->DrawTextureTransparent(window->uFrameX + 24, window->uFrameY + 24, v13);
+ pRenderer->DrawTextureIndexedAlpha(window->uFrameX + 24, window->uFrameY + 24, v13);
sprintfex(pTmpBuf.data(), "\f%05d", ui_character_header_text_color);
sprintfex(pTmpBuf2.data(), pGlobalTXT_LocalizationStrings[429], player->pName, pClassNames[player->classType]); // "%s the %s"
@@ -976,9 +976,9 @@
byte_50697C = !byte_50697C;
if ( byte_50697C && pCurrentScreen != SCREEN_REST )
{
- if (bFlashQuestBook) pRenderer->DrawTextureTransparent(493, 355, pIcons_LOD->GetTexture(uTextureID_ib_td1_A));
- if (bFlashAutonotesBook) pRenderer->DrawTextureTransparent(527, 353, pIcons_LOD->GetTexture(uTextureID_ib_td2_A));
- if (bFlashHistoryBook) pRenderer->DrawTextureTransparent(600, 361, pIcons_LOD->GetTexture(uTextureID_ib_td5_A));
+ if (bFlashQuestBook) pRenderer->DrawTextureIndexedAlpha(493, 355, pIcons_LOD->GetTexture(uTextureID_ib_td1_A));
+ if (bFlashAutonotesBook) pRenderer->DrawTextureIndexedAlpha(527, 353, pIcons_LOD->GetTexture(uTextureID_ib_td2_A));
+ if (bFlashHistoryBook) pRenderer->DrawTextureIndexedAlpha(600, 361, pIcons_LOD->GetTexture(uTextureID_ib_td5_A));
}
else
{
@@ -1032,10 +1032,10 @@
pTextureHealth = pIcons_LOD->GetTexture(uTextureID_BarRed);
if( v3 > 0.0 )
{
- pRenderer->SetTextureClipRect(v17 + pHealthBarPos[i], (signed __int64)((1.0 - v3) * pTextureHealth->uTextureHeight) + 402,
+ pRenderer->SetUIClipRect(v17 + pHealthBarPos[i], (signed __int64)((1.0 - v3) * pTextureHealth->uTextureHeight) + 402,
v17 + pHealthBarPos[i] + pTextureHealth->uTextureWidth, pTextureHealth->uTextureHeight + 402);
pRenderer->DrawTextureIndexed(v17 + pHealthBarPos[i], 402, pTextureHealth);
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
}
if (pParty->pPlayers[i].sMana > 0)
@@ -1046,10 +1046,10 @@
int v17 = 0;
if (i == 2)
v17 = 1;
- pRenderer->SetTextureClipRect(v17 + pManaBarPos[i], (signed __int64)((1.0 - v7) * pTextureMana->uTextureHeight) + 402,
+ pRenderer->SetUIClipRect(v17 + pManaBarPos[i], (signed __int64)((1.0 - v7) * pTextureMana->uTextureHeight) + 402,
v17 + pManaBarPos[i] + pTextureMana->uTextureWidth, pTextureMana->uTextureHeight + 402);
pRenderer->DrawTextureIndexed(v17 + pManaBarPos[i], 402, pTextureMana);
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
}
}
@@ -1057,7 +1057,7 @@
//----- (0041B3B6) --------------------------------------------------------
void GameUI_DrawRightPanel()
{
- pRenderer->DrawTextureTransparent(pViewport->uViewportBR_X, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
+ pRenderer->DrawTextureIndexedAlpha(pViewport->uViewportBR_X, 0, pIcons_LOD->GetTexture(uTextureID_right_panel));
}
//----- (0041B3E2) --------------------------------------------------------
@@ -1514,7 +1514,7 @@
void GameUI_DrawCharacterSelectionFrame()
{
if ( uActiveCharacter )
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[uActiveCharacter - 1] - 9, 380,
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[uActiveCharacter - 1] - 9, 380,
pIcons_LOD->GetTexture(uTextureID_GameUI_CharSelectionFrame));
}
@@ -1552,7 +1552,7 @@
//if ( pRenderer->pRenderD3D )
pRenderer->DrawTextureIndexed(8, 8, spell_texture);
/*else
- pRenderer->DrawTextureTransparent(8, 8, v7);*/
+ pRenderer->DrawTextureIndexedAlpha(8, 8, v7);*/
}
if ( pParty->WaterWalkActive() )
{
@@ -1563,7 +1563,7 @@
//if ( pRenderer->pRenderD3D )
pRenderer->DrawTextureIndexed(396, 8, spell_texture);
/*else
- pRenderer->DrawTextureTransparent(396, 8, v9);*/
+ pRenderer->DrawTextureIndexedAlpha(396, 8, v9);*/
}
}
for (uint i = 0; i < 4; ++i)
@@ -1607,7 +1607,7 @@
if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
pRenderer->DrawTranslucent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
else
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
@@ -1620,7 +1620,7 @@
if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
pRenderer->DrawTranslucent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
else
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
@@ -1647,7 +1647,7 @@
if ( pParty->pPartyBuffs[PARTY_BUFF_INVISIBILITY].uExpireTime )
pRenderer->DrawTranslucent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 388, pPortrait);
else
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] + 1, 388, pPortrait);
if ( pPlayer->pPlayerBuffs[PLAYER_BUFF_BLESS].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_HASTE].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_HEROISM].uExpireTime | pPlayer->pPlayerBuffs[PLAYER_BUFF_SHIELD].uExpireTime
| pPlayer->pPlayerBuffs[PLAYER_BUFF_STONESKIN].uExpireTime )
@@ -1675,7 +1675,7 @@
if ( pParty->uFlags & 0x20 )
pTextureID = dword_5079C8;
}
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[PID_ID(pTurnEngine->pQueue[i].uPackedID)] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[PID_ID(pTurnEngine->pQueue[i].uPackedID)] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
}
}
}
@@ -1695,7 +1695,7 @@
if ( pParty->uFlags & 0x20 )
pTextureID = dword_5079C8;
}
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i] - 4, 385, pIcons_LOD->GetTexture(pTextureID));
}
}
}
@@ -1925,7 +1925,7 @@
arrow_idx = 0;
if ( (signed int)rotate < 128 || (signed int)rotate > 1920 )
arrow_idx = 7;
- pRenderer->DrawTextureTransparent(uCenterX - 3, uCenterY - 3, pIcons_LOD->GetTexture(pTextureIDs_pMapDirs[arrow_idx]));//стрелка
+ pRenderer->DrawTextureIndexedAlpha(uCenterX - 3, uCenterY - 3, pIcons_LOD->GetTexture(pTextureIDs_pMapDirs[arrow_idx]));//стрелка
//draw objects on the minimap
if ( bWizardEyeActive )
@@ -2014,10 +2014,10 @@
}
}
}
- pRenderer->DrawTextureTransparent(468, 0, pIcons_LOD->GetTexture(uTextureID_Minimap_Loop));//draw minimap_loop
- pRenderer->SetTextureClipRect(541, 0, 567, 480);
+ pRenderer->DrawTextureIndexedAlpha(468, 0, pIcons_LOD->GetTexture(uTextureID_Minimap_Loop));//draw minimap_loop
+ pRenderer->SetUIClipRect(541, 0, 567, 480);
pRenderer->DrawTextureIndexed(floorf(((double)pParty->sRotationY * 0.1171875) + 0.5f) + 285, 136, pIcons_LOD->GetTexture(uTextureID_Compas));//draw compas
- pRenderer->ResetTextureClipRect();
+ pRenderer->ResetUIClipRect();
}
//----- (00441498) --------------------------------------------------------
@@ -2038,12 +2038,12 @@
if (pParty->TorchlightActive())
{
IconFrame* icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnum_Torchlight->uIconID, pEventTimer->Time());
- pRenderer->DrawTextureTransparent(pUIAnum_Torchlight->x, pUIAnum_Torchlight->y, pIcons_LOD->GetTexture(icon->uTextureID));
+ pRenderer->DrawTextureIndexedAlpha(pUIAnum_Torchlight->x, pUIAnum_Torchlight->y, pIcons_LOD->GetTexture(icon->uTextureID));
}
if (pParty->WizardEyeActive())
{
IconFrame* icon = pIconsFrameTable->GetFrame((signed __int16)pUIAnim_WizardEye->uIconID, pEventTimer->Time());
- pRenderer->DrawTextureTransparent(pUIAnim_WizardEye->x, pUIAnim_WizardEye->y, pIcons_LOD->GetTexture(icon->uTextureID));
+ pRenderer->DrawTextureIndexedAlpha(pUIAnim_WizardEye->x, pUIAnim_WizardEye->y, pIcons_LOD->GetTexture(icon->uTextureID));
}
}
}
@@ -2105,7 +2105,7 @@
break;
}
}
- pRenderer->DrawTextureTransparent(pHiredNPCsIconsOffsetsX[pNPC_limit_ID], pHiredNPCsIconsOffsetsY[pNPC_limit_ID],
+ pRenderer->DrawTextureIndexedAlpha(pHiredNPCsIconsOffsetsX[pNPC_limit_ID], pHiredNPCsIconsOffsetsY[pNPC_limit_ID],
&pIcons_LOD->pTextures[pIconsFrameTable->GetFrame(v13, uFrameID)->uTextureID]);
}
}
diff -r c532d5242055 -r c7264ab7132f IO/Mouse.cpp
--- a/IO/Mouse.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/IO/Mouse.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -410,7 +410,7 @@
else if (!pParty->pPickedItem.IsIdentified())
pRenderer->DrawTransparentGreenShade(pMouse->uMouseClickX, pMouse->uMouseClickY, pTexture);
else
- pRenderer->DrawTextureTransparent(pMouse->uMouseClickX, pMouse->uMouseClickY, pTexture);
+ pRenderer->DrawTextureIndexedAlpha(pMouse->uMouseClickX, pMouse->uMouseClickY, pTexture);
}
}
else
diff -r c532d5242055 -r c7264ab7132f Media/MediaPlayer.cpp
--- a/Media/MediaPlayer.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/Media/MediaPlayer.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -274,7 +274,10 @@
static bool av_open_video_stream(AVFormatContext *format_ctx, AVVideoStream *out_stream)
{
if (!av_open_stream(format_ctx, AVMEDIA_TYPE_VIDEO, out_stream))
- return Error("Video stream not found"), false;
+ {
+ Error("Video stream not found");
+ false;
+ }
out_stream->frames_per_second = (double)out_stream->dec_ctx->time_base.den / (double)out_stream->dec_ctx->time_base.num;
return true;
diff -r c532d5242055 -r c7264ab7132f stru6.cpp
--- a/stru6.cpp Thu Oct 09 23:33:36 2014 +0300
+++ b/stru6.cpp Fri Oct 10 17:42:05 2014 +0300
@@ -1533,7 +1533,7 @@
}
IconFrame* icon = pIconsFrameTable->GetFrame(buff->uSpellIconID, buff->uSpellAnimTimeElapsed);
- pRenderer->DrawTextureTransparent(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 385, pIcons_LOD->GetTexture(icon->uTextureID));
+ pRenderer->DrawTextureIndexedAlpha(pPlayerPortraitsXCoords_For_PlayerBuffAnimsDrawing[i], 385, pIcons_LOD->GetTexture(icon->uTextureID));
pOtherOverlayList->bRedraw = true;
}