From ae1be8a11043b00b425f7fd2656c38a52d397007 Mon Sep 17 00:00:00 2001 From: kmkolasinski Date: Thu, 23 Apr 2015 15:13:06 +0200 Subject: [PATCH] AB 3.14 version final commit 3.14 beta --- Sources/content.qrc | 2 + Sources/formimageprop.cpp | 28 ++++++ Sources/formimageprop.h | 2 + Sources/formimageprop.ui | 50 +++++++++- Sources/formmaterialindicesmanager.cpp | 27 +++++ Sources/formmaterialindicesmanager.h | 3 +- Sources/formmaterialindicesmanager.ui | 51 +++++++++- Sources/resources/copyToCB.png | Bin 0 -> 16694 bytes Sources/resources/copyToCB.svg | 131 +++++++++++++++++++++++++ Sources/resources/pasteFromCB.png | Bin 0 -> 18428 bytes Sources/resources/pasteFromCB.svg | 131 +++++++++++++++++++++++++ Sources/resources/plane.frag | 2 + 12 files changed, 422 insertions(+), 5 deletions(-) create mode 100644 Sources/resources/copyToCB.png create mode 100644 Sources/resources/copyToCB.svg create mode 100644 Sources/resources/pasteFromCB.png create mode 100644 Sources/resources/pasteFromCB.svg diff --git a/Sources/content.qrc b/Sources/content.qrc index 632ba64..6862042 100644 --- a/Sources/content.qrc +++ b/Sources/content.qrc @@ -56,5 +56,7 @@ resources/showUVs.png resources/resetCamera.png resources/centerCamCursor.png + resources/copyToCB.png + resources/pasteFromCB.png diff --git a/Sources/formimageprop.cpp b/Sources/formimageprop.cpp index 1aeb09a..9899581 100644 --- a/Sources/formimageprop.cpp +++ b/Sources/formimageprop.cpp @@ -16,6 +16,9 @@ FormImageProp::FormImageProp(QMainWindow *parent, QGLWidget* qlW_ptr) : connect(ui->pushButtonOpenImage,SIGNAL(released()),this,SLOT(open())); connect(ui->pushButtonSaveImage,SIGNAL(released()),this,SLOT(save())); + connect(ui->pushButtonCopyToClipboard,SIGNAL(released()),this,SLOT(copyToClipboard())); + connect(ui->pushButtonPasteFromClipboard,SIGNAL(released()),this,SLOT(pasteFromClipboard())); + connect(ui->pushButtonRestoreSettings,SIGNAL(released()),this,SLOT(reloadImageSettings())); connect(ui->checkBoxRemoveShading,SIGNAL(clicked()),this,SLOT(updateGuiCheckBoxes())); @@ -980,3 +983,28 @@ void FormImageProp::reloadImageSettings(){ } +void FormImageProp::pasteFromClipboard(){ + const QClipboard *clipboard = QApplication::clipboard(); + const QMimeData *mimeData = clipboard->mimeData(); + + if (mimeData->hasImage()) { + qDebug() << " Image :"+ + PostfixNames::getTextureName(imageProp.imageType)+ + " loaded from clipboard."; + QPixmap pixmap = qvariant_cast(mimeData->imageData()); + QImage image = pixmap.toImage(); + pasteImageFromClipboard(image); + + } +} +void FormImageProp::copyToClipboard(){ + + qDebug() << " Image :"+ + PostfixNames::getTextureName(imageProp.imageType)+ + " copied to clipboard."; + + QApplication::processEvents(); + image = imageProp.getImage(); + QApplication::clipboard()->setImage(image,QClipboard::Clipboard); +} + diff --git a/Sources/formimageprop.h b/Sources/formimageprop.h index bded9ed..4e7f278 100644 --- a/Sources/formimageprop.h +++ b/Sources/formimageprop.h @@ -53,6 +53,8 @@ public slots: void reloadImageSettings(); + void pasteFromClipboard(); + void copyToClipboard(); void updateComboBoxes(int index); void updateGuiSpinBoxesAndLabes(int); diff --git a/Sources/formimageprop.ui b/Sources/formimageprop.ui index 46093e6..9f83e37 100644 --- a/Sources/formimageprop.ui +++ b/Sources/formimageprop.ui @@ -7,7 +7,7 @@ 0 0 279 - 2511 + 2611 @@ -127,7 +127,7 @@ - + Save current image (Ctrl+S) @@ -166,6 +166,52 @@ + + + + Paste from clipboard + + + Paste from clipboard + + + + + + + :/resources/pasteFromCB.png:/resources/pasteFromCB.png + + + + 32 + 32 + + + + + + + + Copy to clipboard + + + Copy to clipboard + + + + + + + :/resources/copyToCB.png:/resources/copyToCB.png + + + + 32 + 32 + + + + diff --git a/Sources/formmaterialindicesmanager.cpp b/Sources/formmaterialindicesmanager.cpp index de9c418..bf0a5ee 100644 --- a/Sources/formmaterialindicesmanager.cpp +++ b/Sources/formmaterialindicesmanager.cpp @@ -9,6 +9,8 @@ FormMaterialIndicesManager::FormMaterialIndicesManager(QMainWindow *parent, QGLW imageProp.glWidget_ptr = qlW_ptr; connect(ui->pushButtonOpenMaterialImage,SIGNAL(released()),this,SLOT(open())); + connect(ui->pushButtonCopyToClipboard,SIGNAL(released()),this,SLOT(copyToClipboard())); + connect(ui->pushButtonPasteFromClipboard,SIGNAL(released()),this,SLOT(pasteFromClipboard())); connect(ui->checkBoxDisableMaterials,SIGNAL(toggled(bool)),this,SLOT(toggleMaterials(bool))); connect(ui->listWidgetMaterialIndices,SIGNAL(currentRowChanged(int)),this,SLOT(changeMaterial(int))); @@ -265,3 +267,28 @@ void FormMaterialIndicesManager::chooseMaterialByColor(QColor color){ } } + +void FormMaterialIndicesManager::pasteFromClipboard(){ + const QClipboard *clipboard = QApplication::clipboard(); + const QMimeData *mimeData = clipboard->mimeData(); + + if (mimeData->hasImage()) { + qDebug() << " Image :"+ + PostfixNames::getTextureName(imageProp.imageType)+ + " loaded from clipboard."; + QPixmap pixmap = qvariant_cast(mimeData->imageData()); + QImage image = pixmap.toImage(); + pasteImageFromClipboard(image); + + } +} +void FormMaterialIndicesManager::copyToClipboard(){ + + qDebug() << " Image :"+ + PostfixNames::getTextureName(imageProp.imageType)+ + " copied to clipboard."; + + QApplication::processEvents(); + image = imageProp.getImage(); + QApplication::clipboard()->setImage(image,QClipboard::Clipboard); +} diff --git a/Sources/formmaterialindicesmanager.h b/Sources/formmaterialindicesmanager.h index d522c0c..0568180 100644 --- a/Sources/formmaterialindicesmanager.h +++ b/Sources/formmaterialindicesmanager.h @@ -32,7 +32,8 @@ class FormMaterialIndicesManager : public FormImageBase public slots: void changeMaterial(int index); - + void pasteFromClipboard(); + void copyToClipboard(); void toggleMaterials(bool toggle);// enable disable materials void chooseMaterialByColor(QColor color);// takes a color then searches for similar in materials table signals: diff --git a/Sources/formmaterialindicesmanager.ui b/Sources/formmaterialindicesmanager.ui index 0097177..3ba99e7 100644 --- a/Sources/formmaterialindicesmanager.ui +++ b/Sources/formmaterialindicesmanager.ui @@ -6,7 +6,7 @@ 0 0 - 264 + 270 405 @@ -36,7 +36,7 @@ 2 - + @@ -69,6 +69,53 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + :/resources/copyToCB.png:/resources/copyToCB.png + + + + 32 + 32 + + + + + + + + + + + + :/resources/pasteFromCB.png:/resources/pasteFromCB.png + + + + 32 + 32 + + + + diff --git a/Sources/resources/copyToCB.png b/Sources/resources/copyToCB.png new file mode 100644 index 0000000000000000000000000000000000000000..af713fba51dc99a4f2d2039e29bba7b8345cb073 GIT binary patch literal 16694 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 + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Paste + + + + + + Copy + + diff --git a/Sources/resources/pasteFromCB.png b/Sources/resources/pasteFromCB.png new file mode 100644 index 0000000000000000000000000000000000000000..4168d96a22a0178d8f559055a33bfd62a44cfe2e GIT binary patch literal 18428 zcmc({WmME{)HjNa3c@JDASDALN`n$o0z(KYqS7tW-3mowRHIBb?yDD&Btd?Wl1mHxI{!mMEXb${hWyCR2>n~=`+OV z;cp_)^sVsa{3``nG!dTg-}kDNF!-B`Hgf9rL`0Xb5q_T{ii$zPUtVx{^hEl?s{uUhc*o;P)dR8?nrI-EL+69D}aIW}ixska$_xs5!n` zui#yrZTYo)`9RxyczlvmcVyiv?fCjgR_3aPx#p;4(RjLffq7pN@RUdb8%{kmE;upw~a#&F?UbTs_B{5 zu)V0L8$zB(g$_4~eA6h~K3-m42W4f$wl8-^IwJW5hAj9$ zv7YuJCw@(&obqQ;&}QmQRbpb@$ndbM{(+2r>E%zL5`||McjI0b7?9y0QDzUM$4&6lEmQIel z31=x?S;wyNSbN1Z@*nzN+dd2|svX zC*9E0a?(wH$3Jn>W%|?X{)GFwTR`K#*G_~FC#ioQT~)y^*WfZ%rh~QuvS~*$_L29=CF; zkCsMag`GKHQ3~cGSy))iCQs%BVqINbY44t6JXA8=9XL0i}>Y$V1Wa@&mqm$E9iV#*AmU}!})gG>gqWfb~ zBs?sU$kTz>7A-9;gRj;q>ASC2?aT99PgJU)DM{TmFFYiEOWt`t%hS{I55MJz!!-nL z71C-r|Hn*Huo#MPovBOj%XVPgM$(CoUbpHm9a^F9rO>hNZ~5J zAt*vZ2X(zYv;Hj3h}CjWZ68{Q;}5&%i;IdxnNf>@#Beh+#A_o(=Bq(;!hU+l#pPv% zlVJQo@bi*U(N1m>FD^LS=b`20<#w| zW~%t{aQCHgt9`YJmLqhsEc%A@OsU^XQfwM!NOpp^xQcpvd%MEk+PEeQstluVlR;S* z9?AGiE#SM~my<`sR;2G}Y5Bafv5Hdt9lro;WZtaFK(9qjzNF?vp1^o~x=F@48hvA*e446BXl+ za`4Yno<#p_YHTz`{d;v$M(`CEsR4(NnWraqyIbsdg*U#Ns>>I>`|TUja&Kk$=*yiK z4=!K6Jo)(1qr)DC3Vpu1i3D~196ypPSkJKjO_vo%N5`P0B{O$J!ykt` zi+}E*LfQYi7iEfh<4(qPk4FYehw0(zG+5Z!*yQdE8^@0)n?~KhwC7myM;Ezn&n<4x zcMtjp1PFZVH0l&*q6k^j&l4^=eb?VMvfDkc+xR*HAIO~tRlOgok_yzW+gWL8ceITC zv#mX*X&5@9?wfz|6Xe>DJS9o&(Pgo*S~5AYGoWexRo+GWW>RxglbJ#Ur(<|{xRsoo zTn`#eg}{s7`b>k@fBRoGVy40Hq@|~~ZLU?UQ@&JHoyTaBU%PhA9Jk4Uw|(;XamNM! zL>oWYilyPhQ^N(u3WM3&6|JjIzU>yzN`@^)I7-I;RUXbo3#hS&hoPP`1RiKhAhCSX zMNr*0eZ@}_rl3{)r9gYmwtW>=$%fk$d+l>U@hs(`HG1!#xF9g$ zVsIGiJW(blCN{B1Hf3Tp#YOTjLCTlbx^h!S!ra_k?d(ZNf4otK*$7kzA->D!X_qv4Fzg)R;g(YYY>bz z55}u$EA2%}_Th02{`kJMv~-2x0_~j1hFevn_sKK^19=FERsIENb~coG2F+KFP3Q*# zK7RaNbJ%Ge&ZU<7%bP34oLzf`heFC&OKa>xFcjNzSZ$w-NRswfM~%hZ_blE9e)2v2 zhWvC=GdD>_`)vODc!hHx|F^unyrUP2qRKj2S{`EW3~br41yTWx&v8XLo|faGw-jVJ zFz?^L-_x#e61|0TGWu}S=hy78_~Fbo-|Xe2E!Luo*H{)5#SUM)K7HEtEokaPft0jT z8-9xmZ#TX>s4K3)QwXI-;Xa9!p$aq>EhBzb)Y95`g{+~0Df9_h2G7DVtCHYoVjX1t z1$q~~aoC75w=mEL%Wgl7(fjXvtoYS*b=Om~vgkeyfA_*;_ahV|c@4*;ZCpq?jqDGh zK$eR!F(v7sB|W?Tl-tjDSo&#d1NrnDckSUq zQt$%~N`)5V558m!#k>3a*Pw(?NdmY+GaqmKt!JEk_%kKNT=%d|bs%`3_{xj;u&@Fg z>>ADpat0Jsnmt8v?3el^cpTC*g@uKgrqTKw`;sH# z4&mfScV7JTIU-NnUHF~UK`cT1Ho#BFZO7!TUxUwv`x1Z+DOV+>-}`8EK(enSnYPGu zB_4Mi%Mx}cS(vCfh^~MdBS8Y+by-1TvrOctP8LN4FHh zeRjxAot;an5)$4LuI^2|K2jxT&|KX1ADY#e_^9`XLhQ$n9})I)JE#IlZFHM;#cJ^` zWx%a3zH(V`rp8b4@2F9#144TnZ~HM%%DH@Gx0Fa08fv&9#ie<)%*dJl^PgckXgIn)xMH zSCN2#fPF0qG2_%=Umr#O`hCwM2W=$^BcFIjr=y+43h5aOzv}p+w6u@Z(6RN9n4+AV z?uqenx^&XSl+w~tWwb~j&baXBj~`f04vs8kIPnf3&yKSa#HSE>CB?-L;54d%{8W^b zI1O}^5c`ohh4iMMoV&ihev1>ihNdR93%TS&w4~c_^y9~mt?lf#P9YWz7w}q6PEIY= zs=B%iXRb&R`}vh>CAg<5sHlW1qP4D;2S_$uWnyD%XJUMC??&6C@Izw6fP<*RU}o}< zA3ReLk;y+&QdIrr_fY`ecPZGLcnFk8p}I`Wcr#&S!`}}m!ubhs39#$1)!4XnnUGCXNEy(9a$C z*@B6kGT_@|iy-a?L+38XlLjkyjmy!uHZQ-7?xf7`RwU+P>zcLeqzZAlSX)nu@mgQ% zDJM@O6X=;8=vs70znZwe@qsbpr)gQj(MfDgQai|&7aaX#J9f0i+&;7r+=Rq9Tn9p&CGn;(%sE1)4KZb=Z)4g)n@&7 zm6Y$({xk4iN=u2OiAs=dC~jGCs)$7BpdKetoVryfh2+)N)>hFTTvf^FzcU}l{a#=4 zL`P1)j4Zm_+Oc9h-4EUIv~2O+CoXSdr3P-2datFvI}`7nF9ISUk$f#H^a^JaNr`eB zz%Qo6Z_!tZPfFzO?d}dQFD)Ud&}Sw6{8WJLTo188F| zU*8v?V)-&?J3)~nalTo9|4T+~0K}NNNtlf0yJF9wUK!l$qN7}0T+CB_`I1}$u-@~P z@d^PWz(f($pZ)xX_SYxZp<~ce0!T(lD=G$i0v|$n@22V_2Wo329HEHZ6+Q>Ye4Pi4 zQ5}j{2tCnpSFA7{G}MmsP+R2w{Qe!HsiU(-9@3iN*5gpxd0v!0xEx55(R=v55_3b3x7?06ep~#qrx=4T8a`!{$eLv5(?y^a z`7?mB3{j!NaXF~_B=u%UnbvM^+&1r%KZ4AcB#EbJgPRT9Hyf$?CnhFr-T(UGE2jWj zm+bWLn7^avw}qU$D8oN z*@E?7y!g}MjUDvHV*V_iR0k$#vSCiAULhg*QoYlwU@idEpoNm-KnaET}d%JrVci=S2PDY8s8F{WpjGO!We;^6g29BD2|002a6G#6vUD~g~ zdmaZ;^VzLetXE?f7Z7kKJ_(aN`l>W@=ko5;i5l;k>8kw+HWLer zof?yG>VyaLo!3<)?to6%spAL`o&9`AUNI;hyg!yRDf=00#EEi6gP6;AxKD z^!FPAjHB`51=Ice_i^4S{(ezkz9ipfX7=kex|Y#@7l8+MBVq)Mn^`}Oc5X7IrhnV{`+`4?ixZ_@br6I z@;aVr`&XX&tg%oTyD~G`mw_x>f$C>V0M_Tee*FrP1UVYr8_2CD>*;`@^5L$OS_D`m zw6oupn20h~QVJOv8d@02H&m#teSg6|k`X0&_9Qh}A9=q1lB8g9-9m6;cx>#d$Ifrr ze$WJ(&2y?$KxdL8KXtREG?@EwVk)b@LKhv&(f8EUg^&69`S;mWGKaEQFZsH_ewEQ7 zPfAP_D?MJT81!7$oE)K}p-~_?1^@7xyd3~|b=O}TkC<=YhVG!mWG)a9>ocGGeG4@U za_fn^Z~dl*yu3UO&sic#2O13FgnA^}sOMgzmL*w=ii$ZA+#cuIpop9m#TXR~ zAI@@l54UEL6AqakFXnmF1kdJ^IwMiwW3<>S%Z1v3w=UD~IZ+y^@wh}*e=8(r`)9P3 z9W=tx*|Ft#s6re5!(4k&l+r@`;!jw@Sp88fVUIxcY_Q;0aBwI@%gQQPSY$G@u*d^q zo|&CB1^P=vQr{!P=)YTF)H(7kDk{CWq-49C8j720;{%FX)A}?2yiKrEQ&aO^Z{J@a z^Y=@ILjrrz&DDEbZ1cB{6r&#ltX=Pdt%*u1Va0eKua>BX!ma9fDqyf>D*W-?DR6}f zj*dk~lX&dpQrlOy*!Bo6U2CKaEB&|CC^66Sy}eQEjH_|JvKOS2U!WhL8{8xDx`lqp z0dntbCXVDiCq~CPP`pa$S3(-(N}MHKcTl_%=zL5#8F}5C^UCOkfx*F)YTVKCUR#^| zvO%zDG3QyHJ{C|Ycvx6u=#WU_*}qEK=z9T;i77vRJTfy&her^HzsA78b&cimXLyhF z(VfMeMg^81{r#7M{QW~yQ(2WLq+wV3;ve-pVykgDob;J9XRg8C11(?n!Gj0M1qCk% zUw-_M2DotA(aQO;59i&x@(KzHfB5+LZi$L&_x|~F3mDeFfB%>{IiG@vFsuj46etrs z(Vg)6fEwWANg~>J<#cr?J0>P{6s)at92^`#7X5F#D<}lSh`RHKHrZ=&(D)~sz-sJU zb*e~CPL{K?%V)lQTjBZh=ZYXC6)!9-a6o4phu>GB7SIRFLK7T@wr^Xe73}EjYz(0B z5uha~A|HR6_6`l103bz_iICU*lKrjn;>C-6+v%pFE51yrJUa~Z9N;dnv9Z0UtZZmN zi?XpPz;1dCax^dSTIj`|Qj(JI=EQT{iriC-3e-F1wgYq>z~k87Hu4b_72U&N&dW+k zy|4QDQ^w59EE9{xP8&A%Tk=P%XlZ3qQBcTvc~yr;M^`XDc%V@cMV)}xD)xKX+}teu z=g%JluKPdX7*0?A(C+T;5&-STKZ}JsJ3BKZblT5O=dHBNT5nz);COh{GZ;>^N*lCy z-OeEZ@P+t$j z6vfKAUh|&gz+m(r6F`@a`~JAI?2)>Iv{E4e70=$}N1@TtY)%#0?X9iDU(N{x=qUL04lIqRAO>-()#c@i0Uk#yxY)&no752(Rep7+kZE71Z;8;z zpsFb4q}YrWbuR{$)FZ33)a8A@SyiH;!P)jkONX}f&s(tzSO?gX6tJF38LyK}mK zK%KK6!cRs5}&fiK)uY?y_CzVLS#gG84#=D&J3>x_ZB%Br^lp@&G6R)gxo}1Mlj*N_C^1L6$Z_pIDi`uIFAa0QRkM8?dmji#o zy*P^P^hgbGc`hpKIZt|)tPord3L~~G9W}Moakx$BR*9r2yXWX7EKTWeIU5>&{vFMY43t?RScqupwsGza;|ZA99t|M67|ZbcK*g92_J=cO&kEyaqw%pLPJAI zS;9mKyDoa=TRdto?r*ebhVq!AKz46#C z^#UVLmNy2bvPrqQJ?d&|f|lKJq6uP;1>+9cDcgsI*Gi}LOidRHpo(R&UHqy<1{V10*TqdLcs4_-)lKMAI%H>40 zxY*dLxg2l?`b#FN~4*ip&$R?rnaQE%ow=(=sz4$zi~A8A&(6~%#SxJOlUAT3Asb;N=n3x~WL4?5Tb#IR`iX_vH5`hHig1-ZkgYnHPs z+CZ(C^H!nwA&=JZ)hXhqbPCjhl@9`a(S7rQg_@IDu0gM@*4qXTFk_Xpr#(GuJ<}>1 zU+GUfeEd3qUrIlBnKIM;;IFTf1hyQ%)D0srTKgNVeuXu1F_){H^=2 z43a+G%5|0QmX?DCKqmrxeA{=t&mM9-M31GVfw1Crv`7{Z5HR@3*U-S^Le5F`@tURp zSR*_%Qj*BiQUZb(KIkJUwFmh=$g*fFk-)mzj0N3$?OMq9m00Fmw@kga1-!RoXJ%#w z(KD=w26A2Ki+}#woJgst41`UaUT9^g_hs;M(T1AzEs&9st~ z$27$+25BuUhpSH}SU4y9sNl3eL_XYSVK=-xoSlZ2YSdQd%Qn5ed;8WcEzFC#|0fHe zJm#_8d7C+R-*IVw(%ZXi+zKBT<4#94e})k?&lz>JS5o82&B3vH9bx*CqEUceJSCAe zo3JBvakIMTmw&tZ*sw!czPPkCI51$O&+pR6mcfW}EE%&4z^i{cbx{SJ++vg8iJ1cdqcoPG4@Q3x1) zd84ZuR#t20>$&d&lX3CD*46WB(cR&ykx<#Bru@&sDs~cbLdF<3&?Rk6&QXrhi za%?4|o;asicrs~OS=bIiSy|bPbLY+xLIIC~c@>PV){d}h%#MWxaqee!eYfyCFf=WyPX-$Wb|B=ysqL$`j- z6Z={}CaKRAj(yq;U3TUA_3HycK|z-Vc$u&h1b9Bs-~UKkJ9a37>vdVU$v?#R*Z(>cGLMu1PC zX+EsN?u}+;sAOGga(|%-ny!}sWLz|%F@-bhdy$@DB%#NGdM6qa6?IhZS9oF3U5$)E zjJ8EoH$xvOggfYmHVx?y6LFV~@4H|C*Via=Q<~ui1NRO+)B(pR3fs-J%*fKa&J0lV z8J*aF*0HgenV)Z$lN2-`VAodqq8D?fnBjp#>dL%0-Zky)oOBu0sA(RA64Jp54YM3A zP6NT+%+xf^9xD1<;(v$Kf3Kh5Pgm=Zc&?jD+$d?ce%U!U2ddw(Awq~eRVoooF>OxO z*2`R#xy1m`eiJ+Ue@VzO9R*(e$iQHF1Wdep-+7?E86ah*!C*2c-0N*75$r?aW|OmE zimF$?ZVg@cZ%Oe_JbUt+3r9Ulz*VQlY=&rPXyQi-jDtP#IP3tZTYAmwc8PGZfdH=R zZL0zGHU_?N-+<*WfU^S#rLZ{AJMz>h?_u^r1% zapM!1L%QQMsdvu}F7J+b9k%PH<98JC$uhFC7mi|s;(#acBQ{%#L?dNOMpq>&P^D#M zLVfjFetw;^c4_OC+d-ayP?z!z+hf>Nvqc!t0~_7CEa6TQ)gMP~&-qwq`N1sB5>xn=ZW@fz-T4W3Q$xp^(trP6aR>_we{T1|!nQJW-(MqD zIg70=vK%k(r}vr6vIdcX{^GX#rAR~&w--dr{!3zohF-->U&Bc~%D%~2H~`(@7z)?v zvL4KKtHmKb$@NTY!v1|Z?)#fuk1qoVEtLI)b< zj>F|8<14dmj)Gfn$Afg?oL)Gqk7FgCjU!bb0Dt;gOvoTS3bNnL( z1@~d2g0H1o*`+qxPN@4nBR`)+$6fiQ6E4R7?yCR1!VQc*qz_akp_nM67RbSSd1I=l z_v^;BYe{FfxC4eo5|tlrx`-GBG+ynAHdNh$v6Ikx2 zJ$-HxsH8e0DxsXL+wJ7Q_IRw!{!DSq9shs)BuTdf1O`D5r>hp`2`T+`#Bheq+UTo3_9yy=u>aoTLX|*D-@ICPy8zV1a|Y3` zhE|;zeg0C{=N&i^9fQfx*4Ezs-tC{rkSK$HQ{>Q)n)CDLp@1MCX=%kg{>Cjq5I7)Z z2WdQPFlH(6(THC}p%#ZL?jIJKHnze}j75N6GJc4;eP z0aQFRB)7g0vU42Ei;EXiq!PstLNruVgHiGE>yaX^`S7Tnjf{*8&CHg%pRl~xz9l)# zhU!#(P;q&F_!!Xo7wG`X4_m|-P4o?tdK21WgcDq_@b>n0R(*J612l2vsGnJ>IXS_D z_nthB7qeVjTVn~5;5O}Lh5+X|2N@II$U+9(hVR?b@W1Is#dd4y`wz42-vb;JMe!oD zI~jcpZob3lf2lm#YRAd4ecEGG8aFF40~g^4JeCXo{{Bv&m|>sd=6UQ?Datpu{*8bR zaTMQrqeY=B$7%kT<6j|bX{8QeBwc-deY%}-qN5B|4SRcg$^gH#{yIFER*VrujE{|V z95xZPbah>6S{KwC5}k1Wm2D{>MOU;T#S7Yac;p>CH?pqn+xf02>$ZG1J%j@thy7v=L;+RKMq znx%h`zbqK!r>-IEl9=Ach1XLkWNuM%WdkQi+0eJ)-Tv#)v0d~TgLv%+aL-y6En zmG(DU8^>kbLBCB+O}l2>BW|bA$b+5*9zIxe0X@666ZQcy$g!Q?qr2L30HRitGtt^U9oJ< zY9#lixQ|XzAa+|qn1Uwpxczfrd*GaVJ~%vo@$%(MT&J~{eHBEPyaW`gkYq3iN&xa30Idvp4!N*!0xwi$uW*Z(b3U# zkO+2@Ff=q=W9>LCjouNmpZg-d)xt!`-4^^pn3$WldxAOMPVarP$>Zv`bCnMrp^uz( z9gxLrrk zg#_TB1@z)xl{2sywT^)uWYduG(DDnj zDEYPM5HvutQAt?2U{fC*{f4yIv_qOnds(yU2X{3K*&y0GhY-Qd-OFpH*A#a+C65*S zMpsT!&+5I9;5#tb-!D2jKAv^SI!Um5)hVFU$lxaUh?p*RRD{RtucNEQgM)*@5Y1g7 z_)3s%B=Z*BO0_~$NdJb5&k;5-FfeBp9fQJtENJ^@{apDsB75Cpq{~80@?d|PrZlCgy+n5iuw*Y=f1$ESO5PCx>q+61+ zvYtShNiHebm-l8cShR`B0#b(E4EDB&7j<`P0!zI@=>GlPU@*@D}Nzfk>M(;t0r;5J4#B zhF>Q}D{`@--!5FZ@W**=EOKkJnL!b}oTIkJ0IEU4GkmX)oM+G!z$B`P1E>51QS
7YG@>U%EG!yzf2* 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 QP7l!|>8I#yNxgUf7Z-y!kN^Mx literal 0 HcmV?d00001 diff --git a/Sources/resources/pasteFromCB.svg b/Sources/resources/pasteFromCB.svg new file mode 100644 index 0000000..633d570 --- /dev/null +++ b/Sources/resources/pasteFromCB.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Paste + + + + + + Copy + + diff --git a/Sources/resources/plane.frag b/Sources/resources/plane.frag index 1a991d9..5cf4012 100644 --- a/Sources/resources/plane.frag +++ b/Sources/resources/plane.frag @@ -436,6 +436,8 @@ void main( void ) fvMetallic = texture( texMetallic, texcoords.xy ); fvGlossiness = clamp(fvRoughness.r,0.0,1.0)*100+1.0; + if(!gui_bRoughness) fvGlossiness = 1.0; + if(!gui_bDiffuse) fvBaseColor = vec4(0.8); // some gray color if(!gui_bOcclusion)fvSSAOColor = vec4(1.0); if(!gui_bSpecular) fvSpecularColor = vec4(0);