Changeset View
Changeset View
Standalone View
Standalone View
source/blender/compositor/intern/COM_MemoryBuffer.h
| Show First 20 Lines • Show All 256 Lines • ▼ Show 20 Lines | inline void wrap_pixel(int &x, int &y, MemoryBufferExtend extend_x, MemoryBufferExtend extend_y) | ||||
| switch (extend_x) { | switch (extend_x) { | ||||
| case MemoryBufferExtend::Clip: | case MemoryBufferExtend::Clip: | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Extend: | case MemoryBufferExtend::Extend: | ||||
| if (x < 0) { | if (x < 0) { | ||||
| x = 0; | x = 0; | ||||
| } | } | ||||
| if (x >= w) { | if (x >= w) { | ||||
| x = w; | x = w - 1; | ||||
| } | } | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Repeat: | case MemoryBufferExtend::Repeat: | ||||
| x = (x >= 0.0f ? (x % w) : (x % w) + w); | x = (x >= 0.0f ? (x % w) : (x % w) + w); | ||||
| break; | break; | ||||
| } | } | ||||
| switch (extend_y) { | switch (extend_y) { | ||||
| case MemoryBufferExtend::Clip: | case MemoryBufferExtend::Clip: | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Extend: | case MemoryBufferExtend::Extend: | ||||
| if (y < 0) { | if (y < 0) { | ||||
| y = 0; | y = 0; | ||||
| } | } | ||||
| if (y >= h) { | if (y >= h) { | ||||
| y = h; | y = h - 1; | ||||
| } | } | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Repeat: | case MemoryBufferExtend::Repeat: | ||||
| y = (y >= 0.0f ? (y % h) : (y % h) + h); | y = (y >= 0.0f ? (y % h) : (y % h) + h); | ||||
| break; | break; | ||||
| } | } | ||||
| x = x + m_rect.xmin; | |||||
| y = y + m_rect.ymin; | |||||
| } | } | ||||
| inline void wrap_pixel(float &x, | inline void wrap_pixel(float &x, | ||||
| float &y, | float &y, | ||||
| MemoryBufferExtend extend_x, | MemoryBufferExtend extend_x, | ||||
| MemoryBufferExtend extend_y) | MemoryBufferExtend extend_y) | ||||
| { | { | ||||
| const float w = (float)getWidth(); | const float w = (float)getWidth(); | ||||
| const float h = (float)getHeight(); | const float h = (float)getHeight(); | ||||
| x = x - m_rect.xmin; | x = x - m_rect.xmin; | ||||
| y = y - m_rect.ymin; | y = y - m_rect.ymin; | ||||
| switch (extend_x) { | switch (extend_x) { | ||||
| case MemoryBufferExtend::Clip: | case MemoryBufferExtend::Clip: | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Extend: | case MemoryBufferExtend::Extend: | ||||
| if (x < 0) { | if (x < 0) { | ||||
| x = 0.0f; | x = 0.0f; | ||||
| } | } | ||||
| if (x >= w) { | if (x >= w) { | ||||
| x = w; | x = w - 1; | ||||
| } | } | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Repeat: | case MemoryBufferExtend::Repeat: | ||||
| x = fmodf(x, w); | x = fmodf(x, w); | ||||
| break; | break; | ||||
| } | } | ||||
| switch (extend_y) { | switch (extend_y) { | ||||
| case MemoryBufferExtend::Clip: | case MemoryBufferExtend::Clip: | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Extend: | case MemoryBufferExtend::Extend: | ||||
| if (y < 0) { | if (y < 0) { | ||||
| y = 0.0f; | y = 0.0f; | ||||
| } | } | ||||
| if (y >= h) { | if (y >= h) { | ||||
| y = h; | y = h - 1; | ||||
| } | } | ||||
| break; | break; | ||||
| case MemoryBufferExtend::Repeat: | case MemoryBufferExtend::Repeat: | ||||
| y = fmodf(y, h); | y = fmodf(y, h); | ||||
| break; | break; | ||||
| } | } | ||||
| x = x + m_rect.xmin; | |||||
| y = y + m_rect.ymin; | |||||
| } | } | ||||
| inline void read(float *result, | inline void read(float *result, | ||||
| int x, | int x, | ||||
| int y, | int y, | ||||
| MemoryBufferExtend extend_x = MemoryBufferExtend::Clip, | MemoryBufferExtend extend_x = MemoryBufferExtend::Clip, | ||||
| MemoryBufferExtend extend_y = MemoryBufferExtend::Clip) | MemoryBufferExtend extend_y = MemoryBufferExtend::Clip) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 195 Lines • Show Last 20 Lines | |||||