mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 13:30:44 +00:00
768e812e45
* On windows it's strongly desired to be able to compile straight out of a clean checkout or source download. This means anyone can download the source and investigate something quickly, without having to worry about the hassle of figuring out how the project downloads 3rd party dependencies, fetching them, getting them registered in the right place. * This can't be put in a submodule as git submodules don't get downloaded by default so people new to git will get confusing compilation messages, and someone downloading the source from github directly without cloning via git won't get submodules included. * It does add some extra size to a fresh download/checkout which is unfortunate, but absolutely worth the cost. Shallow checkouts still aren't unfeasibly large, and it's only a one-off cost at clone time.
67 lines
2.8 KiB
Plaintext
67 lines
2.8 KiB
Plaintext
#if defined(SWIG_PYTHON_NO_THREADS)
|
|
# if defined(SWIG_PYTHON_THREADS)
|
|
# undef SWIG_PYTHON_THREADS
|
|
# endif
|
|
#endif
|
|
#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */
|
|
# if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL)
|
|
# if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */
|
|
# define SWIG_PYTHON_USE_GIL
|
|
# endif
|
|
# endif
|
|
# if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */
|
|
# ifndef SWIG_PYTHON_INITIALIZE_THREADS
|
|
# define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads()
|
|
# endif
|
|
# ifdef __cplusplus /* C++ code */
|
|
class SWIG_Python_Thread_Block {
|
|
bool status;
|
|
PyGILState_STATE state;
|
|
public:
|
|
void end() { if (status) { PyGILState_Release(state); status = false;} }
|
|
SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {}
|
|
~SWIG_Python_Thread_Block() { end(); }
|
|
};
|
|
class SWIG_Python_Thread_Allow {
|
|
bool status;
|
|
PyThreadState *save;
|
|
public:
|
|
void end() { if (status) { PyEval_RestoreThread(save); status = false; }}
|
|
SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {}
|
|
~SWIG_Python_Thread_Allow() { end(); }
|
|
};
|
|
# define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block
|
|
# define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end()
|
|
# define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow
|
|
# define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end()
|
|
# else /* C code */
|
|
# define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure()
|
|
# define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block)
|
|
# define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread()
|
|
# define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow)
|
|
# endif
|
|
# else /* Old thread way, not implemented, user must provide it */
|
|
# if !defined(SWIG_PYTHON_INITIALIZE_THREADS)
|
|
# define SWIG_PYTHON_INITIALIZE_THREADS
|
|
# endif
|
|
# if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK)
|
|
# define SWIG_PYTHON_THREAD_BEGIN_BLOCK
|
|
# endif
|
|
# if !defined(SWIG_PYTHON_THREAD_END_BLOCK)
|
|
# define SWIG_PYTHON_THREAD_END_BLOCK
|
|
# endif
|
|
# if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW)
|
|
# define SWIG_PYTHON_THREAD_BEGIN_ALLOW
|
|
# endif
|
|
# if !defined(SWIG_PYTHON_THREAD_END_ALLOW)
|
|
# define SWIG_PYTHON_THREAD_END_ALLOW
|
|
# endif
|
|
# endif
|
|
#else /* No thread support */
|
|
# define SWIG_PYTHON_INITIALIZE_THREADS
|
|
# define SWIG_PYTHON_THREAD_BEGIN_BLOCK
|
|
# define SWIG_PYTHON_THREAD_END_BLOCK
|
|
# define SWIG_PYTHON_THREAD_BEGIN_ALLOW
|
|
# define SWIG_PYTHON_THREAD_END_ALLOW
|
|
#endif
|