mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
Add replay API initialisation/shutdown to python examples
This commit is contained in:
@@ -275,6 +275,8 @@ def loadCapture(filename):
|
||||
if 'pyrenderdoc' in globals():
|
||||
pyrenderdoc.Replay().BlockInvoke(sampleCode)
|
||||
else:
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
@@ -286,3 +288,5 @@ else:
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@ else:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
cap,controller = loadCapture(sys.argv[1])
|
||||
|
||||
# Use tkinter to create windows
|
||||
@@ -139,3 +141,6 @@ window.mainloop()
|
||||
controller.Shutdown()
|
||||
|
||||
cap.Shutdown()
|
||||
|
||||
if 'pyrenderdoc' not in globals():
|
||||
rd.ShutdownReplay()
|
||||
|
||||
@@ -90,6 +90,8 @@ def loadCapture(filename):
|
||||
if 'pyrenderdoc' in globals():
|
||||
pyrenderdoc.Replay().BlockInvoke(sampleCode)
|
||||
else:
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
@@ -101,3 +103,5 @@ else:
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
|
||||
@@ -81,6 +81,8 @@ def loadCapture(filename):
|
||||
if 'pyrenderdoc' in globals():
|
||||
pyrenderdoc.Replay().BlockInvoke(sampleCode)
|
||||
else:
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
@@ -92,3 +94,5 @@ else:
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
|
||||
@@ -84,6 +84,8 @@ def loadCapture(filename):
|
||||
if 'pyrenderdoc' in globals():
|
||||
pyrenderdoc.Replay().BlockInvoke(sampleCode)
|
||||
else:
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
@@ -95,3 +97,5 @@ else:
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ import time
|
||||
# the executable and trigger the capture at the desired time
|
||||
raise RuntimeError("This sample should not be run directly, read the source")
|
||||
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
protocols = rd.GetSupportedDeviceProtocols()
|
||||
|
||||
print(f"Supported device protocols: {protocols}")
|
||||
@@ -194,3 +196,5 @@ controller.Shutdown()
|
||||
# save the capture, etc
|
||||
|
||||
remote.ShutdownServerAndConnection()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
@@ -99,10 +99,18 @@ def loadCapture(filename):
|
||||
if 'pyrenderdoc' in globals():
|
||||
pyrenderdoc.Replay().BlockInvoke(sampleCode)
|
||||
else:
|
||||
cap,controller = loadCapture('test.rdc')
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
print('Usage: python3 {} filename.rdc'.format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
|
||||
cap,controller = loadCapture(sys.argv[1])
|
||||
|
||||
sampleCode(controller)
|
||||
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import renderdoc as rd
|
||||
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
# Open a capture file handle
|
||||
cap = rd.OpenCaptureFile()
|
||||
|
||||
@@ -26,3 +28,5 @@ print("%d top-level drawcalls" % len(controller.GetDrawcalls()))
|
||||
controller.Shutdown()
|
||||
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
@@ -47,6 +47,14 @@ Loading a Capture
|
||||
|
||||
Given a capture file ``test.rdc`` we want to load it, begin the replay and get ready to perform analysis on it.
|
||||
|
||||
Before doing anything, we must initialise the replay API. We do that by calling :py:meth:`~renderdoc.InitialiseReplay`. Generally no special configuration is needed so passing a default :py:class:`~renderdoc.GlobalEnvironment` and an empty list of arguments is fine.
|
||||
|
||||
|
||||
.. highlight:: python
|
||||
.. code:: python
|
||||
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
|
||||
To begin with, we use :py:meth:`~renderdoc.OpenCaptureFile` to obtain a :py:class:`~renderdoc.CaptureFile` instance. This gives us access to control over a capture file at a meta level. For more information see the :py:class:`CaptureFile` reference - the interface can also be used to create.
|
||||
|
||||
To open a file, use :py:meth:`~renderdoc.CaptureFile.OpenFile` on the :py:class:`~renderdoc.CaptureFile` instance. This function allows conversion from other formats via an importer, but here we'll use it just for opening a regular ``rdc`` file. It returns a :py:class:`~renderdoc.ReplayStatus` which can be used to determine what went wrong in the event that there was a problem. We then check that the capture uses an API which can be replayed locally - for example not every platform supports ``D3D11``, so on linux this would return no local replay support.
|
||||
@@ -89,6 +97,8 @@ This function call will open the capture and begin to replay it, and initialise
|
||||
|
||||
Once we're done with the interfaces, we should call the ``Shutdown`` function on each, this allows the C++ interface to release the resources allocated.
|
||||
|
||||
Once all work is done we can shutdown the replay API.
|
||||
|
||||
.. highlight:: python
|
||||
.. code:: python
|
||||
|
||||
@@ -97,6 +107,8 @@ Once we're done with the interfaces, we should call the ``Shutdown`` function on
|
||||
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
Example Source
|
||||
--------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user