Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- : Begin batch script
- ::the first line mask the Batchpart as HTML-comment.
- ::don't remove it
- @echo off
- if %*.==. echo keeping last Shader... &goto input
- REG ADD "HKCU\Software\epsxe\config" /f /v VideoPlugin /t REG_SZ /d "gpuPeteOpenGL2.dll">nul
- REG ADD "HKCU\Software\Vision Thing\PSEmu Pro\GPU\PeteOpenGL2" /f /v "FullscreenShader" /t REG_DWORD /d "5">nul
- if not exist %*\gpuPeteOGL2.slf goto noNewShader
- if not exist %*\gpuPeteOGL2.slv goto noNewShader
- goto registerShader
- :noNewShader
- echo %*
- echo ...no GLSlang-Shader for Petes OGL2-Plugin i this folder!
- echo keeping last Shader... &goto input
- :registerShader
- REG ADD "HKCU\Software\Vision Thing\PSEmu Pro\GPU\PeteOpenGL2" /f /v "ShaderDir" /t REG_SZ /d %*\>nul
- echo %*
- echo ...is set as Shader.
- :input
- set args=--shddir%*
- start "" mshta.exe "%~f0" %args%
- @ping -n 5 localhost> nul
- exit /b
- ::exit /b prevent's the Batch from parsing the leftover of the batchfile
- ::after the next line begins the HTML/HTA itself
- -->
- <!DOCTYPE html>
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <html>
- <head>
- <style type="text/css">
- body{
- color: black; /* global Fontcolor*/
- background: linear-gradient(90deg,#444,#eee);
- min-width:380px;
- margin: 0px;
- display:inline-flex;
- flex-wrap: wrap;
- }
- .box{
- width:350px;
- margin: 8px ;
- padding: 3px 3px 3px 3px;
- background-color: rgba(170,170,170,0.75);
- border-radius: 6px;
- box-shadow: 5px 5px 15px dimgrey;
- }
- #footer
- {
- }
- #container1
- {
- display: flex;
- justify-content: flex-end;
- }
- .innercontainer{
- margin: 1px ;
- padding: 2px 2px 2px 2px;
- background-color: rgba(150,150,150,0.75);
- border-style: solid;
- border-width: 2px;
- border-color: gainsboro dimgrey dimgrey gainsboro;
- border-radius: 6px;
- }
- #legend-box{
- width: 10em; /* + all of .innercontainer*/
- }
- .selectbox{
- float: right;
- box-sizing: border-box;
- margin: 0px 0px 0px 0px ;
- padding: 2.7px 0px 2.7px 0px;
- width: 24%;
- background-color:rgba(220,220,220,0.75);
- border-radius: 4px;
- /* not used here, but usefull
- text-align:right
- direction:rtl;
- */
- }
- .selectbox > option {
- background-color:rgba(200,200,200,0.75);
- }
- .labelbox{
- display: inline-block;
- box-sizing: border-box;
- padding: 2px 2px 2px 3px;
- margin: 0px ;
- width: 75%;
- background-color:rgba(220,220,220,0.75);
- border-style: solid;
- border-width: 2px;
- border-color: dimgrey gainsboro gainsboro dimgrey;
- border-radius: 4px;
- }
- #legend-labelbox {
- display: block; /* + all of .labelbox*/
- width: auto;
- }
- [id$="out-target"] {
- float: right;
- display: inline-block;
- width: 24%;
- }
- </style>
- <script type="text/javascript">
- //eventhandling
- document.addEventListener('DOMContentLoaded', function()
- {
- document.getElementById("shaderlevels").addEventListener('change', changeExtShaderValue, false);//get all change events from the "shaderlevels" Box
- document.getElementById("applyBtn").addEventListener("click", applyNewShaderlevel,false);
- document.getElementById("closeBtn").addEventListener("click", closeWindow,false);
- //Here can be added WHAT Events should WHERE listen and WHICH function should handle it!
- } , false);
- function changeExtShaderValue(event )
- {
- //document.getElementById("progCtrl").value = document.getElementById(event.target.id).value;
- recalcNewShaderlevel(document.getElementById(event.target.id).getAttribute("data-index"), document.getElementById(event.target.id).selectedIndex);//element.dataset.index works only in IE>10
- }
- //eventhandling end
- //helperfunctions
- function setSytemObject()
- {
- try
- {
- var temp=new ActiveXObject("WScript.Shell");
- }
- catch(err)
- {
- alert("Your Browser or Operatingsystem\ndon't/nomore suport the \"ActivXObject\"");
- temp={error:true};
- }
- return temp;
- }
- function closeWindow()
- {
- window.top.close()
- }
- function recalcNewShaderlevel(index,value)
- {
- arrExtOGL2Param[index]=parseInt(value);//
- newShaderlevel=joinShaderlevel(arrExtOGL2Param);
- document.getElementById("newslvl-out-target").innerHTML=LeadingSpaces(newShaderlevel);
- }
- function LeadingSpaces(intNum)
- {
- // a try to some nice cosmetic :p...selctboxes are not good to style align right...
- //formating a word type number<100000 into a text of the number with leading "figure-spaces": https://www.cs.tut.fi/~jkorpela/chars/spaces.html
- //ouuu...nice ternary...
- return ((intNum<10)?"\u2007\u2007\u2007\u2007\u2007": (intNum<100)?"\u2007\u2007\u2007\u2007": (intNum<1000)?"\u2007\u2007\u2007": (intNum<10000)?"\u2007\u2007": "\u2007") + intNum;
- }
- function getActualShaderlevel()
- {
- return regReadValue("HKEY_CURRENT_USER\\Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteOpenGL2","FSShaderLevel","REG_DWORD");
- }
- function applyNewShaderlevel()
- {
- (actualShaderlevel!==newShaderlevel)? regWriteValue("HKEY_CURRENT_USER\\Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteOpenGL2","FSShaderLevel","REG_DWORD",newShaderlevel):null;
- actualShaderlevel=(actualShaderlevel!="Error")? newShaderlevel:actualShaderlevel;
- document.getElementById("oldslvl-out-target").innerHTML=LeadingSpaces(actualShaderlevel);
- }
- function splitShaderlevel(int12Bit)
- {
- var arrSplit=[];
- var temp=int12Bit-1;//calculate with OGL2plugin's internal Value which is decrement by 1!!!
- var y=0;
- for (var i = 0; i < arrBitMask.length; i++)
- {
- y=temp%(arrBitMask[i]+1); //y= Input logical and Bitmask
- temp=(temp-y)/(arrBitMask[i]+1);// binary shift right by size of BitMask -> and store result for next loop
- arrSplit[i]=y;
- }
- return arrSplit;
- }
- function joinShaderlevel(arr)
- {
- var y=0;
- for (var i = arrBitMask.length-1; i >=0 ; i--)
- {
- y=y*(arrBitMask[i]+1)+arr[i];//binary shift left by Bitmask ->and add the arraycell
- }
- return y+1;//adjust to OGL2plugins external Value of Shaderlevel
- }
- //helperfunctions end
- //registryfunctions
- function regReadValue(strRegPath, strEntryName, strType)
- {
- try
- {
- var temp=system.RegRead(strRegPath + "\\" + strEntryName);
- }
- catch(err)
- {
- alert(err.message) ;
- temp="Error";
- }
- return temp;
- }
- function regWriteValue( strRegPath, strEntryName, strType, vValue )
- {
- var strFullPath = strRegPath + "\\" + strEntryName;
- try
- {
- var temp=system.RegWrite(strFullPath, vValue, strType);
- }
- catch(err)
- {
- alert(err.message) ;
- temp="Error";
- }
- return temp;
- }
- //registryfunctions end
- //GUI functions
- function addSelectBox(min,max,selected,parent,index)
- {
- var parentElement = document.getElementById (parent);
- var selectElement = document.createElement ("select");
- selectElement.id=parent+"-select";
- selectElement.name="shaderlevelselect";
- selectElement.setAttribute('data-index', index);
- selectElement.className="selectbox";
- for (var i=min;i <= max;i++)
- {
- var option = new Option (LeadingSpaces(i),i);
- selectElement.options[selectElement.options.length] = option;
- }
- selectElement.selectedIndex=selected;
- parentElement.appendChild (selectElement);
- }
- function addLabelBox(parent,index,label)
- {
- var Labelbox = document.createElement("div");
- Labelbox.id=parent+"-labelbox"+index;
- Labelbox.className="labelbox";
- var text = document.createTextNode(label);
- parent.appendChild(Labelbox);
- Labelbox.appendChild(text);
- }
- function createSelectField(parent,index,label)
- {
- var parentElement = document.getElementById("shaderlevels");
- var SelectField = document.createElement("div");
- SelectField.id=parent+"-selectfield"+index;
- SelectField.className="innercontainer";
- parentElement.appendChild(SelectField);
- addLabelBox(SelectField,index,label);
- addSelectBox(0,arrBitMask[index],arrExtOGL2Param[index],SelectField.id,index);
- }
- function addSelectField(parent)
- {
- for(var i=0;i < arrExtOGL2Param.length;i++)
- {
- createSelectField(parent,i,"extOGL2Param["+i+"]")
- }
- }
- //global Variables
- var system;
- var actualShaderlevel=0;
- var newShaderlevel=0;
- var arrExtOGL2Param=[];
- var arrBitMask=[3,3,7,7,1,1];
- //eventhandling
- function Window_onLoad(elemenID)
- {
- window.resizeTo(800,480);
- window.moveTo((screen.availWidth-screen.availWidth/2)-100,(screen.availHeight-screen.availHeight/1.5)-100);
- system=setSytemObject();
- actualShaderlevel=getActualShaderlevel();
- newShaderlevel=(actualShaderlevel=="Error")||(actualShaderlevel==0) ? 1 : actualShaderlevel;
- document.getElementById("newslvl-out-target").innerHTML=LeadingSpaces(newShaderlevel);
- arrExtOGL2Param=splitShaderlevel(newShaderlevel);
- document.getElementById("oldslvl-out-target").innerHTML=LeadingSpaces(actualShaderlevel);
- addSelectField("shaderlevels");
- }
- //GUI functions end
- </script>
- </head>
- <body style="" onload="Window_onLoad()">
- <div id=shaderlevels class=box>
- <div id=legend-box class=innercontainer>
- <div id=legend-labelbox class=labelbox>
- Shaderlevels Setup
- </div>
- </div>
- <!--the SelectFields will be added here dynamically by the function addSelectField -->
- </div>
- <!--actualShaderlevel will be inserted here dynamically -->
- <div id=feedback class=box>
- <div id=legend-box class=innercontainer>
- <div id=legend-labelbox class=labelbox >
- Feedback
- </div>
- </div>
- <!--todo: create the following dynamically by javasript -->
- <div id=out-box class=innercontainer>
- <div id=out-labelbox class=labelbox >
- actual Shaderlevel
- </div>
- <div id=oldslvl-out-target class=labelbox >
- <!--actualShaderlevel will be inserted here dynamically -->
- </div>
- </div>
- <div id=out-box class=innercontainer>
- <div id=out-labelbox class=labelbox name=oldshaderlevel>
- new Shaderlevel
- </div>
- <div id=newslvl-out-target class=labelbox >
- <!--newShaderlevel will be inserted here dynamically -->
- </div>
- </div>
- </div>
- <div id=footer class=box>
- <div id=legend-box class=innercontainer>
- <div id=legend-labelbox class=labelbox >
- Something
- </div>
- </div>
- <div id=container1 class=innercontainer>
- <button id="applyBtn">Apply</button>
- <button id="closeBtn">Close</button>
- </div>
- <div id=test></div><!--end todo-->
- </div>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement