Skip to content

Commit 0878717

Browse files
authored
enable alpha channel for images (#3115)
1 parent 5ee8edc commit 0878717

3 files changed

Lines changed: 16 additions & 8 deletions

File tree

gframe/drawing.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -855,7 +855,7 @@ void Game::DrawSpec() {
855855
if(showcard) {
856856
switch(showcard) {
857857
case 1: {
858-
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150));
858+
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150), true);
859859
driver->draw2DImage(imageManager.tMask, ResizeCardMid(574, 150, 574 + (showcarddif > CARD_IMG_WIDTH ? CARD_IMG_WIDTH : showcarddif), 150 + CARD_IMG_HEIGHT, midx, midy),
860860
irr::core::recti(CARD_IMG_HEIGHT - showcarddif, 0, CARD_IMG_HEIGHT - (showcarddif > CARD_IMG_WIDTH ? showcarddif - CARD_IMG_WIDTH : 0), CARD_IMG_HEIGHT), 0, 0, true);
861861
showcarddif += 15;
@@ -866,7 +866,7 @@ void Game::DrawSpec() {
866866
break;
867867
}
868868
case 2: {
869-
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150));
869+
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150), true);
870870
driver->draw2DImage(imageManager.tMask, ResizeCardMid(574 + showcarddif, 150, 574 + CARD_IMG_WIDTH, 150 + CARD_IMG_HEIGHT, midx, midy),
871871
irr::core::recti(0, 0, CARD_IMG_WIDTH - showcarddif, CARD_IMG_HEIGHT), 0, 0, true);
872872
showcarddif += 15;
@@ -876,7 +876,7 @@ void Game::DrawSpec() {
876876
break;
877877
}
878878
case 3: {
879-
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150));
879+
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150), true);
880880
driver->draw2DImage(imageManager.tNegated, ResizeCardMid(536 + showcarddif, 141 + showcarddif, 792 - showcarddif, 397 - showcarddif, midx, midy), irr::core::recti(0, 0, 128, 128), 0, 0, true);
881881
if(showcarddif < 64)
882882
showcarddif += 4;
@@ -907,7 +907,7 @@ void Game::DrawSpec() {
907907
break;
908908
}
909909
case 6: {
910-
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150));
910+
driver->draw2DImage(imageManager.GetTexture(showcardcode, true), ResizeCardHint(574, 150), true);
911911
driver->draw2DImage(imageManager.tNumber, ResizeCardMid(536 + showcarddif, 141 + showcarddif, 792 - showcarddif, 397 - showcarddif, midx, midy),
912912
irr::core::recti((showcardp % 5) * 64, (showcardp / 5) * 64, (showcardp % 5 + 1) * 64, (showcardp / 5 + 1) * 64), 0, 0, true);
913913
if(showcarddif < 64)
@@ -940,8 +940,8 @@ void Game::DrawSpec() {
940940
}
941941
case 100: {
942942
if(showcardp < 60) {
943-
driver->draw2DImage(imageManager.tHand[(showcardcode >> 16) & 0x3], irr::core::vector2di((615 + 44.5) * xScale - 44.5, (showcarddif + 64) * yScale - 64));
944-
driver->draw2DImage(imageManager.tHand[showcardcode & 0x3], irr::core::vector2di((615 + 44.5) * xScale - 44.5, (540 - showcarddif + 64) * yScale - 64));
943+
driver->draw2DImage(imageManager.tHand[(showcardcode >> 16) & 0x3], irr::core::vector2di((615 + 44.5) * xScale - 44.5, (showcarddif + 64) * yScale - 64), true);
944+
driver->draw2DImage(imageManager.tHand[showcardcode & 0x3], irr::core::vector2di((615 + 44.5) * xScale - 44.5, (540 - showcarddif + 64) * yScale - 64), true);
945945
float dy = -0.333333f * showcardp + 10;
946946
showcardp++;
947947
if(showcardp < 30)
@@ -1183,7 +1183,7 @@ void Game::DrawThumb(const CardDataC* cp, irr::core::vector2di pos, const LFList
11831183
limitloc = irr::core::recti(pos.X, pos.Y, pos.X + 20 * xScale, pos.Y + 20 * yScale);
11841184
otloc = irr::core::recti(pos.X + 7, pos.Y + 50 * yScale, pos.X + 37 * xScale, pos.Y + 65 * yScale);
11851185
}
1186-
driver->draw2DImage(img, dragloc, irr::core::rect<irr::s32>(0, 0, size.Width, size.Height));
1186+
driver->draw2DImage(img, dragloc, irr::core::rect<irr::s32>(0, 0, size.Width, size.Height), 0, 0, true);
11871187
auto lfit = lflist->content.find(lcode);
11881188
if (lfit != lflist->content.end()) {
11891189
switch(lfit->second) {

gframe/game.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ bool Game::Initialize() {
517517
for(int i = 0; i < 3; ++i) {
518518
btnHand[i] = env->addButton(irr::core::rect<irr::s32>(10 + 105 * i, 10, 105 + 105 * i, 144), wHand, BUTTON_HAND1 + i, L"");
519519
btnHand[i]->setImage(imageManager.tHand[i]);
520+
btnHand[i]->setUseAlphaChannel(true);
520521
}
521522
//
522523
wFTSelect = env->addWindow(irr::core::rect<irr::s32>(550, 240, 780, 340), false, L"");
@@ -576,11 +577,15 @@ bool Game::Initialize() {
576577
wPosSelect->getCloseButton()->setVisible(false);
577578
wPosSelect->setVisible(false);
578579
btnPSAU = env->addButton(irr::core::rect<irr::s32>(27, 35, 164, 172), wPosSelect, BUTTON_POS_AU);
580+
btnPSAU->setUseAlphaChannel(true);
579581
btnPSAD = env->addButton(irr::core::rect<irr::s32>(27, 35, 164, 172), wPosSelect, BUTTON_POS_AD);
582+
btnPSAD->setUseAlphaChannel(true);
580583
btnFacedownImgInfo[btnPSAD] = {0, false};
581584
btnPSAD->setVisible(false); // PSAD = PoSition Attack face-Down, is not allowed in the rules, so the width of wPosSelect only support 3 buttons
582585
btnPSDU = env->addButton(irr::core::rect<irr::s32>(169, 35, 306, 172), wPosSelect, BUTTON_POS_DU);
586+
btnPSDU->setUseAlphaChannel(true);
583587
btnPSDD = env->addButton(irr::core::rect<irr::s32>(311, 35, 448, 172), wPosSelect, BUTTON_POS_DD);
588+
btnPSDD->setUseAlphaChannel(true);
584589
btnFacedownImgInfo[btnPSDD] = {0, true};
585590
//card select
586591
wCardSelect = env->addWindow(irr::core::rect<irr::s32>(320, 100, 1000, 400), false, L"");
@@ -591,6 +596,7 @@ bool Game::Initialize() {
591596
stCardPos[i]->setBackgroundColor(0xffffffff);
592597
stCardPos[i]->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
593598
btnCardSelect[i] = env->addButton(irr::core::rect<irr::s32>(30 + 125 * i, 55, 150 + 125 * i, 225), wCardSelect, BUTTON_CARD_0 + i);
599+
btnCardSelect[i]->setUseAlphaChannel(true);
594600
}
595601
scrCardList = env->addScrollBar(true, irr::core::rect<irr::s32>(30, 235, 650, 255), wCardSelect, SCROLL_CARD_SELECT);
596602
btnSelectOK = env->addButton(irr::core::rect<irr::s32>(300, 265, 380, 290), wCardSelect, BUTTON_CARD_SEL_OK, dataManager.GetSysString(1211));
@@ -603,6 +609,7 @@ bool Game::Initialize() {
603609
stDisplayPos[i]->setBackgroundColor(0xffffffff);
604610
stDisplayPos[i]->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
605611
btnCardDisplay[i] = env->addButton(irr::core::rect<irr::s32>(30 + 125 * i, 55, 150 + 125 * i, 225), wCardDisplay, BUTTON_DISPLAY_0 + i);
612+
btnCardDisplay[i]->setUseAlphaChannel(true);
606613
}
607614
scrDisplayList = env->addScrollBar(true, irr::core::rect<irr::s32>(30, 235, 650, 255), wCardDisplay, SCROLL_CARD_DISPLAY);
608615
btnDisplayOK = env->addButton(irr::core::rect<irr::s32>(300, 265, 380, 290), wCardDisplay, BUTTON_CARD_DISP_OK, dataManager.GetSysString(1211));

gframe/materials.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ Materials::Materials() {
101101
mCard.ColorMaterial = irr::video::ECM_NONE;
102102
mCard.MaterialType = irr::video::EMT_ONETEXTURE_BLEND;
103103
mCard.ZWriteEnable = irr::video::EZW_ON;
104-
mCard.MaterialTypeParam = pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_VERTEX_COLOR);
104+
mCard.MaterialTypeParam = pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X,
105+
irr::video::EAS_VERTEX_COLOR | irr::video::EAS_TEXTURE);
105106
mTexture.AmbientColor = 0xffffffff;
106107
mTexture.DiffuseColor = 0xff000000;
107108
mTexture.ColorMaterial = irr::video::ECM_NONE;

0 commit comments

Comments
 (0)