#endif
#elif defined WIN32 || defined _WIN32
-
- #if defined _MSC_VER && defined _M_IX86
- static inline int CV_XADD( int* addr, int delta )
- {
- int tmp;
- __asm
- {
- mov edx, addr
- mov eax, delta
- lock xadd [edx], eax
- mov tmp, eax
- }
- return tmp;
- }
- #else
- #include "windows.h"
- #undef min
- #undef max
- #define CV_XADD(addr,delta) InterlockedExchangeAdd((LONG volatile*)(addr), (delta))
- #endif
-
+ #define CV_XADD(addr,delta) _InterlockedExchangeAdd((long volatile*)(addr), (delta))
#else
template<typename _Tp> static inline _Tp CV_XADD(_Tp* addr, _Tp delta)
static void icvUpdateWindowPos( CvWindow* window );
static CvWindow* hg_windows = 0;
+
+typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*);
static CvWin32WindowCallback hg_on_preprocess = 0, hg_on_postprocess = 0;
static HINSTANCE hg_hinstance = 0;
}
-typedef int (CV_CDECL * CvWin32WindowCallback)(HWND, UINT, WPARAM, LPARAM, int*);
-
CV_IMPL void
cvSetPreprocessFuncWin32_(const void* callback)
{