[Bf-blender-cvs] [d9d7b5b] master: Cleanup: simplify bitmap line drawing

2016-12-03 Thread Campbell Barton
Commit: d9d7b5b4d0779e16e5ba3103982351180de7df0e
Author: Campbell Barton
Date:   Sun Dec 4 15:05:50 2016 +1100
Branches: master
https://developer.blender.org/rBd9d7b5b4d0779e16e5ba3103982351180de7df0e

Cleanup: simplify bitmap line drawing

- Expand overly dense & confusing delta assignments.
- Replace bit shift with multiply.

Also link to 'clipped' version of this function
which may be useful to add later.

===

M   source/blender/blenlib/intern/bitmap_draw_2d.c

===

diff --git a/source/blender/blenlib/intern/bitmap_draw_2d.c 
b/source/blender/blenlib/intern/bitmap_draw_2d.c
index afc5451..e77e8cf 100644
--- a/source/blender/blenlib/intern/bitmap_draw_2d.c
+++ b/source/blender/blenlib/intern/bitmap_draw_2d.c
@@ -46,6 +46,8 @@
 
 /**
  * Plot a line from \a p1 to \a p2 (inclusive).
+ *
+ * \note For clipped line drawing, see: 
http://stackoverflow.com/a/40902741/432509
  */
 void BLI_bitmap_draw_2d_line_v2v2i(
 const int p1[2], const int p2[2],
@@ -57,33 +59,36 @@ void BLI_bitmap_draw_2d_line_v2v2i(
int x2 = p2[0];
int y2 = p2[1];
 
-   int ix;
-   int iy;
-
-   /* if x1 == x2 or y1 == y2, then it does not matter what we set here */
-   int delta_x = (x2 > x1 ? ((void)(ix = 1), x2 - x1) : ((void)(ix = -1), 
x1 - x2)) << 1;
-   int delta_y = (y2 > y1 ? ((void)(iy = 1), y2 - y1) : ((void)(iy = -1), 
y1 - y2)) << 1;
-
if (callback(x1, y1, userData) == 0) {
return;
}
 
+   /* if x1 == x2 or y1 == y2, then it does not matter what we set here */
+   const int sign_x = (x2 > x1) ? 1 : -1;
+   const int sign_y = (y2 > y1) ? 1 : -1;
+
+   const int delta_x = (sign_x == 1) ? (x2 - x1) : (x1 - x2);
+   const int delta_y = (sign_y == 1) ? (y2 - y1) : (y1 - y2);
+
+   const int delta_x_step = delta_x * 2;
+   const int delta_y_step = delta_y * 2;
+
if (delta_x >= delta_y) {
/* error may go below zero */
-   int error = delta_y - (delta_x >> 1);
+   int error = delta_y_step - delta_x;
 
while (x1 != x2) {
if (error >= 0) {
-   if (error || (ix > 0)) {
-   y1 += iy;
-   error -= delta_x;
+   if (error || (sign_x == 1)) {
+   y1 += sign_y;
+   error -= delta_x_step;
}
/* else do nothing */
}
/* else do nothing */
 
-   x1 += ix;
-   error += delta_y;
+   x1 += sign_x;
+   error += delta_y_step;
 
if (callback(x1, y1, userData) == 0) {
return;
@@ -92,20 +97,20 @@ void BLI_bitmap_draw_2d_line_v2v2i(
}
else {
/* error may go below zero */
-   int error = delta_x - (delta_y >> 1);
+   int error = delta_x_step - delta_y;
 
while (y1 != y2) {
if (error >= 0) {
-   if (error || (iy > 0)) {
-   x1 += ix;
-   error -= delta_y;
+   if (error || (sign_y == 1)) {
+   x1 += sign_x;
+   error -= delta_y_step;
}
/* else do nothing */
}
/* else do nothing */
 
-   y1 += iy;
-   error += delta_x;
+   y1 += sign_y;
+   error += delta_x_step;
 
if (callback(x1, y1, userData) == 0) {
return;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [923eae2] master: [msvc] Changes for new oiio/ffmpeg versions.

2016-12-03 Thread lazydodo
Commit: 923eae25d1abf7b93edf553982877672f6259dcb
Author: lazydodo
Date:   Sat Dec 3 17:38:20 2016 -0700
Branches: master
https://developer.blender.org/rB923eae25d1abf7b93edf553982877672f6259dcb

[msvc] Changes for new oiio/ffmpeg versions.

===

M   build_files/cmake/platform/platform_win32_msvc.cmake
M   source/creator/CMakeLists.txt

===

diff --git a/build_files/cmake/platform/platform_win32_msvc.cmake 
b/build_files/cmake/platform/platform_win32_msvc.cmake
index 96c9ec9..3b50351 100644
--- a/build_files/cmake/platform/platform_win32_msvc.cmake
+++ b/build_files/cmake/platform/platform_win32_msvc.cmake
@@ -238,14 +238,14 @@ if(WITH_CODEC_FFMPEG)
windows_find_package(FFMPEG)
if(NOT FFMPEG_FOUND)
warn_hardcoded_paths(ffmpeg)
-   set(FFMPEG_LIBRARY_VERSION 55)
-   set(FFMPEG_LIBRARY_VERSION_AVU 52)
+   set(FFMPEG_LIBRARY_VERSION 57)
+   set(FFMPEG_LIBRARY_VERSION_AVU 55)
set(FFMPEG_LIBRARIES
-   
${LIBDIR}/ffmpeg/lib/avcodec-${FFMPEG_LIBRARY_VERSION}.lib
-   
${LIBDIR}/ffmpeg/lib/avformat-${FFMPEG_LIBRARY_VERSION}.lib
-   
${LIBDIR}/ffmpeg/lib/avdevice-${FFMPEG_LIBRARY_VERSION}.lib
-   
${LIBDIR}/ffmpeg/lib/avutil-${FFMPEG_LIBRARY_VERSION_AVU}.lib
-   ${LIBDIR}/ffmpeg/lib/swscale-2.lib
+   ${LIBDIR}/ffmpeg/lib/avcodec.lib
+   ${LIBDIR}/ffmpeg/lib/avformat.lib
+   ${LIBDIR}/ffmpeg/lib/avdevice.lib
+   ${LIBDIR}/ffmpeg/lib/avutil.lib
+   ${LIBDIR}/ffmpeg/lib/swscale.lib
)
endif()
 endif()
@@ -380,6 +380,7 @@ if(WITH_OPENIMAGEIO)
set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
add_definitions(-DOIIO_STATIC_BUILD)
+   add_definitions(-DOIIO_NO_SSE=1)
 endif()
 
 if(WITH_LLVM)
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index 04a79f6..eea4554 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -713,10 +713,7 @@ elseif(WIN32)
)
 
if(WITH_PYTHON_INSTALL_NUMPY)
-   set(PYTHON_NUMPY_VERSION 1.9)
-   if((MSVC_VERSION EQUAL 1900) OR (MSVC_VERSION 
EQUAL 1910))
-   set(PYTHON_NUMPY_VERSION 1.11)
-   endif()
+   set(PYTHON_NUMPY_VERSION 1.10)
add_custom_command(OUTPUT 
${CMAKE_CURRENT_BINARY_DIR}/${BLENDER_VERSION}/python/lib/site-packages
COMMAND ${CMAKE_COMMAND} -E
make_directory 
${CMAKE_CURRENT_BINARY_DIR}/${BLENDER_VERSION}/python/lib/site-packages)
@@ -830,11 +827,12 @@ elseif(WIN32)
else()
install(
FILES
-   ${LIBDIR}/ffmpeg/lib/avcodec-55.dll
-   ${LIBDIR}/ffmpeg/lib/avformat-55.dll
-   ${LIBDIR}/ffmpeg/lib/avdevice-55.dll
-   ${LIBDIR}/ffmpeg/lib/avutil-52.dll
-   ${LIBDIR}/ffmpeg/lib/swscale-2.dll
+   ${LIBDIR}/ffmpeg/lib/avcodec-57.dll
+   ${LIBDIR}/ffmpeg/lib/avformat-57.dll
+   ${LIBDIR}/ffmpeg/lib/avdevice-57.dll
+   ${LIBDIR}/ffmpeg/lib/avutil-55.dll
+   ${LIBDIR}/ffmpeg/lib/swscale-4.dll
+   ${LIBDIR}/ffmpeg/lib/swresample-2.dll
DESTINATION "."
)
endif()

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [1a01ef4] master: Fix macOS build with openimageio 1.7.8 and openexr.

2016-12-03 Thread Brecht Van Lommel
Commit: 1a01ef4ae903f05ae4ff14bd585ed909e35fc089
Author: Brecht Van Lommel
Date:   Sat Dec 3 14:56:46 2016 +0100
Branches: master
https://developer.blender.org/rB1a01ef4ae903f05ae4ff14bd585ed909e35fc089

Fix macOS build with openimageio 1.7.8 and openexr.

These macros conflict and are no longer needed with C99 or C++ anyway.

===

M   source/blender/blenlib/BLI_math_base.h

===

diff --git a/source/blender/blenlib/BLI_math_base.h 
b/source/blender/blenlib/BLI_math_base.h
index e97a250..0126e30 100644
--- a/source/blender/blenlib/BLI_math_base.h
+++ b/source/blender/blenlib/BLI_math_base.h
@@ -85,63 +85,6 @@ static const int NAN_INT = 0x7FC0;
 #  define NAN_FLT  (*((float *)(_INT)))
 #endif
 
-/* do not redefine functions from C99, POSIX.1-2001 or MSVC12 (partial C99) */
-#if !(defined(_ISOC99_SOURCE) || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE 
>= 200112L) || defined(_MSC_VER))
-
-#ifndef sqrtf
-#define sqrtf(a) ((float)sqrt(a))
-#endif
-#ifndef powf
-#define powf(a, b) ((float)pow(a, b))
-#endif
-#ifndef cosf
-#define cosf(a) ((float)cos(a))
-#endif
-#ifndef sinf
-#define sinf(a) ((float)sin(a))
-#endif
-#ifndef acosf
-#define acosf(a) ((float)acos(a))
-#endif
-#ifndef asinf
-#define asinf(a) ((float)asin(a))
-#endif
-#ifndef atan2f
-#define atan2f(a, b) ((float)atan2(a, b))
-#endif
-#ifndef tanf
-#define tanf(a) ((float)tan(a))
-#endif
-#ifndef atanf
-#define atanf(a) ((float)atan(a))
-#endif
-#ifndef floorf
-#define floorf(a) ((float)floor(a))
-#endif
-#ifndef ceilf
-#define ceilf(a) ((float)ceil(a))
-#endif
-#ifndef fabsf
-#define fabsf(a) ((float)fabs(a))
-#endif
-#ifndef logf
-#define logf(a) ((float)log(a))
-#endif
-#ifndef expf
-#define expf(a) ((float)exp(a))
-#endif
-#ifndef fmodf
-#define fmodf(a, b) ((float)fmod(a, b))
-#endif
-#ifndef hypotf
-#define hypotf(a, b) ((float)hypot(a, b))
-#endif
-#ifndef copysignf
-#define copysignf(a, b) ((float)copysign(a, b))
-#endif
-
-#endif  /* C99, POSIX.1-2001 or MSVC12 (partial C99) */
-
 #if BLI_MATH_DO_INLINE
 #include "intern/math_base_inline.c"
 #endif

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [ae04d0f] master: CMake: update for macOS 10.9 libs with ffmpeg 3.2.1 and webp support.

2016-12-03 Thread Brecht Van Lommel
Commit: ae04d0fcb6e05f6a1132b5dd4f6103f01d0c5dd1
Author: Brecht Van Lommel
Date:   Sat Dec 3 14:56:58 2016 +0100
Branches: master
https://developer.blender.org/rBae04d0fcb6e05f6a1132b5dd4f6103f01d0c5dd1

CMake: update for macOS 10.9 libs with ffmpeg 3.2.1 and webp support.

===

M   build_files/cmake/platform/platform_apple.cmake

===

diff --git a/build_files/cmake/platform/platform_apple.cmake 
b/build_files/cmake/platform/platform_apple.cmake
index 129969a..0083cca 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -158,7 +158,7 @@ if(WITH_CODEC_FFMPEG)
mp3lame swscale x264 xvidcore theora theoradec theoraenc vorbis 
vorbisenc vorbisfile ogg
)
if(WITH_CXX11)
-   set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} schroedinger orc vpx)
+   set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} schroedinger orc vpx 
webp swresample)
endif()
set(FFMPEG_LIBPATH ${FFMPEG}/lib)
 endif()

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] [6b47c1d] workspaces: Move active screen layout into the active workspace

2016-12-03 Thread Julian Eisel
Commit: 6b47c1d90b0c951ef882299a82d1cbf9240b7bf0
Author: Julian Eisel
Date:   Sat Dec 3 12:12:17 2016 +0100
Branches: workspaces
https://developer.blender.org/rB6b47c1d90b0c951ef882299a82d1cbf9240b7bf0

Move active screen layout into the active workspace

Changing the workspace now also changes the layout. Note that there is a 
drawing issue here so you'll have to move the window to see the change. There 
is also a crash when closing Blender, need to investigate some more.
This commit also cares for compatibility, we simply create a new workspace for 
each screen layout of the old file.

I want to avoid any low-level access of workspace related data, instead 
everything should go through an API. Thus I also added some API functions for 
workspaces.
To store bScreens (aka layout) using a ListBase in a workspace, I had to add a 
bScreen wrapper, called WorkSpaceLayout.

===

M   release/scripts/startup/bl_ui/space_info.py
M   source/blender/blenkernel/BKE_workspace.h
M   source/blender/blenkernel/intern/blendfile.c
M   source/blender/blenkernel/intern/context.c
M   source/blender/blenkernel/intern/depsgraph.c
M   source/blender/blenkernel/intern/image.c
M   source/blender/blenkernel/intern/scene.c
M   source/blender/blenkernel/intern/workspace.c
M   source/blender/blenloader/intern/readfile.c
M   source/blender/blenloader/intern/versioning_270.c
M   source/blender/blenloader/intern/writefile.c
M   source/blender/depsgraph/intern/depsgraph_tag.cc
M   source/blender/editors/include/ED_screen.h
M   source/blender/editors/interface/interface.c
M   source/blender/editors/interface/interface_eyedropper.c
M   source/blender/editors/interface/interface_regions.c
M   source/blender/editors/object/object_add.c
M   source/blender/editors/render/render_internal.c
M   source/blender/editors/render/render_update.c
M   source/blender/editors/render/render_view.c
M   source/blender/editors/screen/area.c
M   source/blender/editors/screen/screen_edit.c
M   source/blender/editors/screen/screen_intern.h
M   source/blender/editors/screen/screen_ops.c
M   source/blender/editors/screen/workspace_edit.c
M   source/blender/editors/sculpt_paint/paint_image.c
M   source/blender/editors/space_clip/clip_editor.c
M   source/blender/editors/space_node/node_edit.c
M   source/blender/editors/space_view3d/space_view3d.c
M   source/blender/makesdna/DNA_screen_types.h
M   source/blender/makesdna/DNA_windowmanager_types.h
M   source/blender/makesrna/intern/rna_screen.c
M   source/blender/makesrna/intern/rna_wm.c
M   source/blender/makesrna/intern/rna_workspace.c
M   source/blender/windowmanager/WM_api.h
M   source/blender/windowmanager/intern/wm.c
M   source/blender/windowmanager/intern/wm_draw.c
M   source/blender/windowmanager/intern/wm_event_system.c
M   source/blender/windowmanager/intern/wm_files.c
M   source/blender/windowmanager/intern/wm_init_exit.c
M   source/blender/windowmanager/intern/wm_operators.c
M   source/blender/windowmanager/intern/wm_stereo.c
M   source/blender/windowmanager/intern/wm_subwindow.c
M   source/blender/windowmanager/intern/wm_window.c
M   source/blenderplayer/bad_level_call_stubs/stubs.c
M   source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp

===

diff --git a/release/scripts/startup/bl_ui/space_info.py 
b/release/scripts/startup/bl_ui/space_info.py
index 84464a6..ef3130f 100644
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@ -28,6 +28,7 @@ class INFO_HT_header(Header):
 layout = self.layout
 
 window = context.window
+screen = context.screen
 scene = context.scene
 rd = scene.render
 
@@ -36,13 +37,13 @@ class INFO_HT_header(Header):
 
 INFO_MT_editor_menus.draw_collapsible(context, layout)
 
-if window.screen.show_fullscreen:
+if screen.show_fullscreen:
 layout.operator("screen.back_to_previous", icon='SCREEN_BACK', 
text="Back to Previous")
 layout.separator()
 else:
-layout.template_ID(context.window, "workspace", 
new="workspace.workspace_new", unlink="workspace.workspace_delete")
-layout.template_ID_preview(context.window, "screen", 
new="screen.new", unlink="screen.delete", rows=2, cols=6)
-layout.template_ID(context.screen, "scene", new="scene.new", 
unlink="scene.delete")
+layout.template_ID(window, "workspace", 
new="workspace.workspace_new", unlink="workspace.workspace_delete")
+layout.template_ID_preview(window.workspace, "screen", 
new="screen.new", unlink="screen.delete", rows=2, cols=6)
+layout.template_ID(screen, "scene", new="scene.new", 
unlink="scene.delete")