From 34ff563dbe7e5267587dae405c82d4b9f2934182 Mon Sep 17 00:00:00 2001
From: Maurice Raybaud <mauriceraybaud@hotmail.fr>
Date: Fri, 21 Jan 2011 18:24:07 +0000
Subject: [PATCH] Fix to allow 32 bits blender with 64 bits pov and vice versa

---
 render_povray/render.py | 31 +++++++++++++++++++++++++++++--
 1 file changed, 29 insertions(+), 2 deletions(-)

diff --git a/render_povray/render.py b/render_povray/render.py
index 324bf3c1d..5e7a9393a 100644
--- a/render_povray/render.py
+++ b/render_povray/render.py
@@ -1503,10 +1503,37 @@ class PovrayRender(bpy.types.RenderEngine):
             import winreg
             regKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, 'Software\\POV-Ray\\v3.7\\Windows')
 
+            #64 bits blender 
             if bitness == 64:
-                pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine64'
+                try:
+                    pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine64'
+                except OSError:
+                    # someone might run povray 32 bits on a 64 bits blender machine
+                    try:
+                        pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine'
+                    except OSError:
+                        print("POV-Ray 3.7: could not execute '%s', possibly POV-Ray isn't installed" % pov_binary)
+                    else:
+                        print("POV-Ray 3.7 64 bits could not execute, running 32 bits instead")
+                else:
+                    print("POV-Ray 3.7 64 bits found")
+                    
+                        
+            #32 bits blender            
             else:
-                pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine'
+                try:
+                    pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine'
+                # someone might also run povray 64 bits with a 32 bits build of blender. 
+                except OSError:
+                    try:
+                        pov_binary = winreg.QueryValueEx(regKey, 'Home')[0] + '\\bin\\pvengine64'
+                    except OSError:
+                        print("POV-Ray 3.7: could not execute '%s', possibly POV-Ray isn't installed" % pov_binary)
+                    else:
+                        print("Running POV-Ray 3.7 64 bits build with 32 bits Blender, \nYou might want to run Blender 64 bits as well.")
+                else:
+                    print("POV-Ray 3.7 32 bits found")
+                    
         else:
             # DH - added -d option to prevent render window popup which leads to segfault on linux
             extra_args.append('-d')
-- 
GitLab