Advertisement
Guest User

Set OGL2_extShader.cmd

a guest
Jun 20th, 2017
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!-- : Begin batch script
  2. ::the first line mask the Batchpart as HTML-comment.
  3. ::don't remove it  
  4. @echo off
  5. if %*.==. echo keeping last Shader... &goto input
  6. REG ADD "HKCU\Software\epsxe\config" /f /v VideoPlugin /t REG_SZ /d  "gpuPeteOpenGL2.dll">nul
  7. REG ADD "HKCU\Software\Vision Thing\PSEmu Pro\GPU\PeteOpenGL2" /f /v "FullscreenShader" /t REG_DWORD /d  "5">nul
  8. if not exist %*\gpuPeteOGL2.slf goto noNewShader
  9. if not exist %*\gpuPeteOGL2.slv goto noNewShader
  10. goto registerShader
  11. :noNewShader
  12. echo %*
  13. echo ...no GLSlang-Shader for Petes OGL2-Plugin i this folder!
  14. echo keeping last Shader... &goto input
  15. :registerShader
  16. REG ADD "HKCU\Software\Vision Thing\PSEmu Pro\GPU\PeteOpenGL2" /f /v "ShaderDir" /t REG_SZ /d  %*\>nul
  17. echo %*
  18. echo ...is set as Shader.
  19. :input
  20. set args=--shddir%*
  21. start "" mshta.exe "%~f0" %args%
  22. @ping -n 5 localhost> nul
  23. exit /b
  24. ::exit /b prevent's the Batch from parsing the leftover of the batchfile
  25. ::after the next line begins the HTML/HTA itself
  26. -->
  27. <!DOCTYPE html>
  28. <meta http-equiv="x-ua-compatible" content="ie=edge">
  29. <html>
  30.   <head>
  31.   <style type="text/css">
  32.     body{
  33.     color: black;  /* global Fontcolor*/    
  34.     background: linear-gradient(90deg,#444,#eee);
  35.     min-width:380px;
  36.     margin: 0px;
  37.     display:inline-flex;
  38.     flex-wrap: wrap;
  39.  
  40.     }
  41.     .box{
  42.       width:350px;
  43.       margin: 8px ;
  44.       padding: 3px 3px 3px 3px;
  45.       background-color: rgba(170,170,170,0.75);
  46.       border-radius: 6px;
  47.       box-shadow: 5px 5px 15px dimgrey;
  48.     }
  49.     #footer
  50.     {
  51.     }
  52.     #container1
  53.     {
  54.       display: flex;
  55.       justify-content: flex-end;
  56.     }
  57.     .innercontainer{
  58.       margin: 1px ;
  59.       padding: 2px 2px 2px 2px;
  60.       background-color: rgba(150,150,150,0.75);
  61.       border-style: solid;
  62.       border-width: 2px;
  63.       border-color: gainsboro dimgrey dimgrey gainsboro;
  64.       border-radius: 6px;
  65.     }
  66.     #legend-box{
  67.     width: 10em;   /* + all  of .innercontainer*/
  68.     }
  69.     .selectbox{
  70.       float: right;
  71.       box-sizing: border-box;
  72.       margin: 0px 0px 0px 0px ;
  73.       padding: 2.7px 0px 2.7px 0px;
  74.       width: 24%;
  75.       background-color:rgba(220,220,220,0.75);
  76.       border-radius: 4px;
  77.       /* not used here, but usefull
  78.       text-align:right
  79.       direction:rtl;
  80.       */
  81.     }
  82.     .selectbox > option {
  83.       background-color:rgba(200,200,200,0.75);
  84.     }
  85.     .labelbox{
  86.       display: inline-block;
  87.       box-sizing: border-box;
  88.       padding: 2px 2px 2px 3px;
  89.       margin: 0px ;
  90.       width: 75%;
  91.       background-color:rgba(220,220,220,0.75);
  92.       border-style: solid;
  93.       border-width: 2px;
  94.       border-color: dimgrey gainsboro gainsboro dimgrey;
  95.       border-radius: 4px;
  96.     }
  97.     #legend-labelbox {
  98.       display: block;  /* + all  of .labelbox*/
  99.       width: auto;
  100.     }
  101.     [id$="out-target"] {
  102.     float: right;
  103.     display: inline-block;
  104.     width: 24%;
  105. }
  106.  
  107.     </style>
  108.   <script type="text/javascript">
  109. //eventhandling
  110.    
  111.     document.addEventListener('DOMContentLoaded', function()
  112.     {
  113.       document.getElementById("shaderlevels").addEventListener('change', changeExtShaderValue, false);//get all change events from the "shaderlevels" Box
  114.       document.getElementById("applyBtn").addEventListener("click", applyNewShaderlevel,false);
  115.       document.getElementById("closeBtn").addEventListener("click", closeWindow,false);
  116.  
  117.       //Here can be added WHAT Events should WHERE listen and WHICH function should handle it!
  118.        
  119.     } , false);
  120.            
  121.       function changeExtShaderValue(event )
  122.       {
  123.         //document.getElementById("progCtrl").value = document.getElementById(event.target.id).value;
  124.         recalcNewShaderlevel(document.getElementById(event.target.id).getAttribute("data-index"), document.getElementById(event.target.id).selectedIndex);//element.dataset.index works only in IE>10
  125.      
  126.       }
  127.      
  128. //eventhandling end
  129.      
  130. //helperfunctions
  131.      
  132.      function setSytemObject()
  133.      {
  134.      try
  135.         {
  136.            var temp=new ActiveXObject("WScript.Shell");
  137.         }
  138.       catch(err)
  139.         {
  140.           alert("Your Browser or Operatingsystem\ndon't/nomore suport the \"ActivXObject\"");
  141.           temp={error:true};
  142.         }
  143.       return temp;
  144.      }
  145.  
  146.      
  147.       function closeWindow()
  148.       {
  149.         window.top.close()
  150.       }
  151.       function recalcNewShaderlevel(index,value)
  152.       {
  153.         arrExtOGL2Param[index]=parseInt(value);//
  154.         newShaderlevel=joinShaderlevel(arrExtOGL2Param);
  155.         document.getElementById("newslvl-out-target").innerHTML=LeadingSpaces(newShaderlevel);
  156.       }  
  157.      
  158.       function LeadingSpaces(intNum)
  159.       {  
  160.       // a try to some nice cosmetic :p...selctboxes  are  not good  to style align right...
  161.       //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
  162.       //ouuu...nice ternary...
  163.       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;
  164.       }
  165.       function getActualShaderlevel()
  166.       {
  167.         return regReadValue("HKEY_CURRENT_USER\\Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteOpenGL2","FSShaderLevel","REG_DWORD");
  168.       }
  169.      
  170.       function applyNewShaderlevel()
  171.       {
  172.         (actualShaderlevel!==newShaderlevel)? regWriteValue("HKEY_CURRENT_USER\\Software\\Vision Thing\\PSEmu Pro\\GPU\\PeteOpenGL2","FSShaderLevel","REG_DWORD",newShaderlevel):null;
  173.         actualShaderlevel=(actualShaderlevel!="Error")? newShaderlevel:actualShaderlevel;
  174.         document.getElementById("oldslvl-out-target").innerHTML=LeadingSpaces(actualShaderlevel);
  175.       }
  176.      
  177.       function splitShaderlevel(int12Bit)
  178.       {
  179.         var arrSplit=[];
  180.         var temp=int12Bit-1;//calculate with OGL2plugin's internal Value which is decrement by 1!!!
  181.         var y=0;
  182.         for (var i = 0; i < arrBitMask.length; i++)
  183.         {
  184.           y=temp%(arrBitMask[i]+1); //y= Input logical and Bitmask
  185.           temp=(temp-y)/(arrBitMask[i]+1);// binary shift right by size of BitMask -> and store result for next loop
  186.           arrSplit[i]=y;
  187.         }
  188.       return arrSplit;
  189.       }
  190.      
  191.       function joinShaderlevel(arr)
  192.       {
  193.         var y=0;
  194.         for (var i = arrBitMask.length-1; i >=0 ; i--)
  195.         {
  196.           y=y*(arrBitMask[i]+1)+arr[i];//binary shift left by Bitmask ->and  add the arraycell
  197.         }
  198.       return y+1;//adjust to OGL2plugins external Value of Shaderlevel
  199.       }
  200.      
  201.  
  202. //helperfunctions end
  203.  
  204. //registryfunctions
  205.       function regReadValue(strRegPath, strEntryName, strType)
  206.       {
  207.       try
  208.         {
  209.            var temp=system.RegRead(strRegPath + "\\" + strEntryName);
  210.         }
  211.       catch(err)
  212.         {
  213.           alert(err.message) ;
  214.           temp="Error";
  215.         }
  216.       return temp;
  217.       }
  218.      
  219.       function regWriteValue( strRegPath, strEntryName, strType, vValue )
  220.       {
  221.         var strFullPath = strRegPath + "\\" + strEntryName;
  222.       try
  223.         {
  224.           var temp=system.RegWrite(strFullPath, vValue, strType);
  225.         }
  226.       catch(err)
  227.         {
  228.           alert(err.message) ;
  229.           temp="Error";
  230.         }
  231.       return temp;
  232.       }
  233. //registryfunctions end
  234.  
  235. //GUI functions
  236.       function addSelectBox(min,max,selected,parent,index)
  237.       {
  238.         var parentElement = document.getElementById (parent);
  239.         var selectElement = document.createElement ("select");
  240.         selectElement.id=parent+"-select";
  241.         selectElement.name="shaderlevelselect";
  242.         selectElement.setAttribute('data-index', index);
  243.         selectElement.className="selectbox";
  244.         for (var i=min;i <= max;i++)
  245.         {
  246.           var option = new Option (LeadingSpaces(i),i);
  247.           selectElement.options[selectElement.options.length] = option;
  248.         }
  249.         selectElement.selectedIndex=selected;
  250.         parentElement.appendChild (selectElement);
  251.       }
  252.      
  253.       function addLabelBox(parent,index,label)
  254.       {
  255.         var Labelbox = document.createElement("div");
  256.         Labelbox.id=parent+"-labelbox"+index;
  257.         Labelbox.className="labelbox";
  258.         var text = document.createTextNode(label);
  259.         parent.appendChild(Labelbox);
  260.         Labelbox.appendChild(text);
  261.       }
  262.      
  263.       function  createSelectField(parent,index,label)
  264.       {
  265.         var parentElement = document.getElementById("shaderlevels");
  266.         var SelectField = document.createElement("div");
  267.         SelectField.id=parent+"-selectfield"+index;
  268.         SelectField.className="innercontainer";
  269.         parentElement.appendChild(SelectField);
  270.         addLabelBox(SelectField,index,label);
  271.         addSelectBox(0,arrBitMask[index],arrExtOGL2Param[index],SelectField.id,index);
  272.       }
  273.      
  274.       function addSelectField(parent)
  275.       {
  276.         for(var i=0;i < arrExtOGL2Param.length;i++)
  277.         {        
  278.           createSelectField(parent,i,"extOGL2Param["+i+"]")
  279.         }
  280.       }
  281.      
  282. //global Variables
  283.      
  284.       var system;
  285.       var actualShaderlevel=0;
  286.       var newShaderlevel=0;
  287.       var arrExtOGL2Param=[];
  288.       var arrBitMask=[3,3,7,7,1,1];
  289. //eventhandling
  290.  
  291.     function Window_onLoad(elemenID)
  292.       {
  293.         window.resizeTo(800,480);
  294.         window.moveTo((screen.availWidth-screen.availWidth/2)-100,(screen.availHeight-screen.availHeight/1.5)-100);
  295.         system=setSytemObject();
  296.         actualShaderlevel=getActualShaderlevel();
  297.         newShaderlevel=(actualShaderlevel=="Error")||(actualShaderlevel==0) ? 1 : actualShaderlevel;
  298.         document.getElementById("newslvl-out-target").innerHTML=LeadingSpaces(newShaderlevel);
  299.         arrExtOGL2Param=splitShaderlevel(newShaderlevel);
  300.         document.getElementById("oldslvl-out-target").innerHTML=LeadingSpaces(actualShaderlevel);
  301.         addSelectField("shaderlevels");
  302.       }
  303. //GUI functions end
  304.  
  305.     </script>
  306.   </head>
  307.   <body   style="" onload="Window_onLoad()">
  308.     <div id=shaderlevels class=box>
  309.       <div id=legend-box class=innercontainer>
  310.         <div id=legend-labelbox class=labelbox>
  311.           Shaderlevels Setup
  312.         </div>
  313.       </div>
  314.       <!--the SelectFields will be added here dynamically by the function addSelectField -->
  315.     </div>
  316.     <!--actualShaderlevel will be inserted here dynamically -->
  317.     <div id=feedback class=box>
  318.       <div id=legend-box class=innercontainer>
  319.         <div id=legend-labelbox class=labelbox  >
  320.           Feedback
  321.         </div>
  322.       </div>
  323.       <!--todo: create the following dynamically by javasript -->
  324.       <div id=out-box class=innercontainer>
  325.         <div id=out-labelbox class=labelbox  >
  326.           actual Shaderlevel
  327.         </div>        
  328.         <div id=oldslvl-out-target class=labelbox  >
  329.           <!--actualShaderlevel will be inserted here dynamically -->
  330.         </div>
  331.       </div>
  332.       <div id=out-box class=innercontainer>
  333.         <div id=out-labelbox class=labelbox  name=oldshaderlevel>
  334.           new Shaderlevel
  335.         </div>        
  336.         <div id=newslvl-out-target class=labelbox  >
  337.           <!--newShaderlevel will be inserted here dynamically -->
  338.         </div>
  339.       </div>
  340.     </div>
  341.     <div id=footer class=box>
  342.       <div id=legend-box class=innercontainer>
  343.         <div id=legend-labelbox class=labelbox  >
  344.           Something
  345.         </div>
  346.       </div>
  347.       <div id=container1 class=innercontainer>
  348.         <button id="applyBtn">Apply</button>
  349.         <button id="closeBtn">Close</button>
  350.       </div>
  351.       <div id=test></div><!--end todo-->
  352.     </div>
  353.   </body>
  354. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement