svn merge ^/trunk/blender -r48119:48129
This commit is contained in:
@@ -205,15 +205,15 @@ Operate(
|
||||
void
|
||||
BSP_GhostTestApp3D::
|
||||
UpdateFrame(
|
||||
){
|
||||
if (m_window) {
|
||||
) {
|
||||
if (m_window) {
|
||||
|
||||
GHOST_Rect v_rect;
|
||||
m_window->getClientBounds(v_rect);
|
||||
GHOST_Rect v_rect;
|
||||
m_window->getClientBounds(v_rect);
|
||||
|
||||
glViewport(0,0,v_rect.getWidth(),v_rect.getHeight());
|
||||
glViewport(0,0,v_rect.getWidth(),v_rect.getHeight());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -93,8 +93,8 @@ NewTestMesh(
|
||||
#endif
|
||||
|
||||
|
||||
int main() {
|
||||
|
||||
int main()
|
||||
{
|
||||
MT_Vector3 min,max;
|
||||
MT_Vector3 min2,max2;
|
||||
|
||||
|
||||
@@ -218,7 +218,7 @@ void BlenderSession::render()
|
||||
}
|
||||
|
||||
buffer_params.passes = passes;
|
||||
scene->film->passes = passes;
|
||||
scene->film->tag_passes_update(scene, passes);
|
||||
scene->film->tag_update(scene);
|
||||
scene->integrator->tag_update(scene);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "device.h"
|
||||
#include "film.h"
|
||||
#include "integrator.h"
|
||||
#include "mesh.h"
|
||||
#include "scene.h"
|
||||
|
||||
#include "util_algorithm.h"
|
||||
@@ -296,6 +297,16 @@ bool Film::modified(const Film& film)
|
||||
&& Pass::equals(passes, film.passes));
|
||||
}
|
||||
|
||||
void Film::tag_passes_update(Scene *scene, const vector<Pass>& passes_)
|
||||
{
|
||||
if(Pass::contains(passes, PASS_UV) != Pass::contains(passes_, PASS_UV))
|
||||
scene->mesh_manager->tag_update(scene);
|
||||
else if(Pass::contains(passes, PASS_MOTION) != Pass::contains(passes_, PASS_MOTION))
|
||||
scene->mesh_manager->tag_update(scene);
|
||||
|
||||
passes = passes_;
|
||||
}
|
||||
|
||||
void Film::tag_update(Scene *scene)
|
||||
{
|
||||
need_update = true;
|
||||
|
||||
@@ -56,6 +56,7 @@ public:
|
||||
void device_free(Device *device, DeviceScene *dscene);
|
||||
|
||||
bool modified(const Film& film);
|
||||
void tag_passes_update(Scene *scene, const vector<Pass>& passes_);
|
||||
void tag_update(Scene *scene);
|
||||
};
|
||||
|
||||
|
||||
@@ -67,7 +67,8 @@ struct r_fill_context {
|
||||
* just the poly. Since the DEM code could end up being coupled with this, we'll keep it separate
|
||||
* for now.
|
||||
*/
|
||||
static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, struct e_status *open_edge) {
|
||||
static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, struct e_status *open_edge)
|
||||
{
|
||||
int i;
|
||||
int xbeg;
|
||||
int ybeg;
|
||||
@@ -165,7 +166,8 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
|
||||
* for speed, but waiting on final design choices for curve-data before eliminating data the DEM code will need
|
||||
* if it ends up being coupled with this function.
|
||||
*/
|
||||
static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, float intensity) {
|
||||
static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, float intensity)
|
||||
{
|
||||
int x_curr; /* current pixel position in X */
|
||||
int y_curr; /* current scan line being drawn */
|
||||
int yp; /* y-pixel's position in frame buffer */
|
||||
@@ -757,18 +759,21 @@ int PLX_raskterize_feather(float (*base_verts)[2], int num_base_verts, float (*f
|
||||
return i; /* Return the value returned by the rasterizer. */
|
||||
}
|
||||
|
||||
int get_range_expanded_pixel_coord(float normalized_value, int max_value) {
|
||||
int get_range_expanded_pixel_coord(float normalized_value, int max_value)
|
||||
{
|
||||
return (int)((normalized_value * (float)(max_value)) + 0.5f);
|
||||
}
|
||||
|
||||
float get_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y) {
|
||||
float get_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y)
|
||||
{
|
||||
if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
|
||||
return 0.0f;
|
||||
}
|
||||
return buf[(pos_y * buf_y) + buf_x];
|
||||
}
|
||||
|
||||
float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, float v) {
|
||||
float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, float v)
|
||||
{
|
||||
int a;
|
||||
int b;
|
||||
int a_plus_1;
|
||||
@@ -794,14 +799,16 @@ float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, fl
|
||||
|
||||
}
|
||||
|
||||
void set_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y, float intensity) {
|
||||
void set_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y, float intensity)
|
||||
{
|
||||
if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
|
||||
return;
|
||||
}
|
||||
buf[(pos_y * buf_y) + buf_x] = intensity;
|
||||
}
|
||||
#define __PLX__FAKE_AA__
|
||||
int PLX_antialias_buffer(float *buf, int buf_x, int buf_y) {
|
||||
int PLX_antialias_buffer(float *buf, int buf_x, int buf_y)
|
||||
{
|
||||
#ifdef __PLX__FAKE_AA__
|
||||
#ifdef __PLX_GREY_AA__
|
||||
int i=0;
|
||||
|
||||
@@ -256,7 +256,7 @@ class SEQUENCER_MT_strip(Menu):
|
||||
layout.operator("sequencer.rebuild_proxy")
|
||||
layout.separator()
|
||||
|
||||
layout.operator("sequencer.duplicate")
|
||||
layout.operator("sequencer.duplicate_move")
|
||||
layout.operator("sequencer.delete")
|
||||
|
||||
strip = act_strip(context)
|
||||
|
||||
@@ -920,7 +920,8 @@ static BoidState *get_boid_state(BoidSettings *boids, ParticleData *pa)
|
||||
|
||||
return state;
|
||||
}
|
||||
//static int boid_condition_is_true(BoidCondition *cond) {
|
||||
//static int boid_condition_is_true(BoidCondition *cond)
|
||||
//{
|
||||
// /* TODO */
|
||||
// return 0;
|
||||
//}
|
||||
|
||||
@@ -3101,7 +3101,8 @@ static Object *obrel_armature_find(Object *ob)
|
||||
return ob_arm;
|
||||
}
|
||||
|
||||
static int obrel_is_recursive_child(Object *ob, Object *child) {
|
||||
static int obrel_is_recursive_child(Object *ob, Object *child)
|
||||
{
|
||||
Object *par;
|
||||
for (par = child->parent; par; par = par->parent) {
|
||||
if (par == ob) {
|
||||
|
||||
@@ -31,7 +31,9 @@
|
||||
#include "COLLADABUUtils.h"
|
||||
#include "collada_internal.h"
|
||||
|
||||
MaterialsExporter::MaterialsExporter(COLLADASW::StreamWriter *sw, const ExportSettings *export_settings) : COLLADASW::LibraryMaterials(sw), export_settings(export_settings) {
|
||||
MaterialsExporter::MaterialsExporter(COLLADASW::StreamWriter *sw, const ExportSettings *export_settings) : COLLADASW::LibraryMaterials(sw), export_settings(export_settings)
|
||||
{
|
||||
/* pass */
|
||||
}
|
||||
|
||||
void MaterialsExporter::exportMaterials(Scene *sce)
|
||||
|
||||
@@ -57,7 +57,9 @@ static const char *bc_get_joint_name(T *node)
|
||||
// This is used to store data passed in write_controller_data.
|
||||
// Arrays from COLLADAFW::SkinControllerData lose ownership, so do this class members
|
||||
// so that arrays don't get freed until we free them explicitly.
|
||||
SkinInfo::SkinInfo() {
|
||||
SkinInfo::SkinInfo()
|
||||
{
|
||||
/* pass */
|
||||
}
|
||||
|
||||
SkinInfo::SkinInfo(const SkinInfo& skin) : weights(skin.weights),
|
||||
|
||||
@@ -29,7 +29,9 @@
|
||||
|
||||
#include "TransformReader.h"
|
||||
|
||||
TransformReader::TransformReader(UnitConverter *conv) : unit_converter(conv) {
|
||||
TransformReader::TransformReader(UnitConverter *conv) : unit_converter(conv)
|
||||
{
|
||||
/* pass */
|
||||
}
|
||||
|
||||
void TransformReader::get_node_mat(float mat[][4], COLLADAFW::Node *node, std::map<COLLADAFW::UniqueId, Animation> *animation_map, Object *ob)
|
||||
|
||||
@@ -31,7 +31,9 @@
|
||||
|
||||
#include "BLI_linklist.h"
|
||||
|
||||
UnitConverter::UnitConverter() : unit(), up_axis(COLLADAFW::FileInfo::Z_UP) {
|
||||
UnitConverter::UnitConverter() : unit(), up_axis(COLLADAFW::FileInfo::Z_UP)
|
||||
{
|
||||
/* pass */
|
||||
}
|
||||
|
||||
void UnitConverter::read_asset(const COLLADAFW::FileInfo *asset)
|
||||
|
||||
@@ -260,7 +260,8 @@ void bc_bubble_sort_by_Object_name(LinkNode *export_set)
|
||||
* can be root bones. Otherwise the top most deform bones in the hierarchy
|
||||
* are root bones.
|
||||
*/
|
||||
bool bc_is_root_bone(Bone *aBone, bool deform_bones_only) {
|
||||
bool bc_is_root_bone(Bone *aBone, bool deform_bones_only)
|
||||
{
|
||||
if (deform_bones_only) {
|
||||
Bone *root = NULL;
|
||||
Bone *bone = aBone;
|
||||
|
||||
@@ -194,7 +194,8 @@ void NodeOperation::COM_clAttachOutputMemoryBufferToKernelParameter(cl_kernel ke
|
||||
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
|
||||
}
|
||||
|
||||
void NodeOperation::COM_clEnqueueRange(cl_command_queue queue, cl_kernel kernel, MemoryBuffer *outputMemoryBuffer) {
|
||||
void NodeOperation::COM_clEnqueueRange(cl_command_queue queue, cl_kernel kernel, MemoryBuffer *outputMemoryBuffer)
|
||||
{
|
||||
cl_int error;
|
||||
const size_t size[] = {outputMemoryBuffer->getWidth(), outputMemoryBuffer->getHeight()};
|
||||
|
||||
@@ -202,13 +203,14 @@ void NodeOperation::COM_clEnqueueRange(cl_command_queue queue, cl_kernel kernel,
|
||||
if (error != CL_SUCCESS) { printf("CLERROR[%d]: %s\n", error, clewErrorString(error)); }
|
||||
}
|
||||
|
||||
void NodeOperation::COM_clEnqueueRange(cl_command_queue queue, cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex) {
|
||||
void NodeOperation::COM_clEnqueueRange(cl_command_queue queue, cl_kernel kernel, MemoryBuffer *outputMemoryBuffer, int offsetIndex)
|
||||
{
|
||||
cl_int error;
|
||||
const int width = outputMemoryBuffer->getWidth();
|
||||
const int height = outputMemoryBuffer->getHeight();
|
||||
int offsetx;
|
||||
int offsety;
|
||||
const int localSize = 128;
|
||||
const int localSize = 32;
|
||||
size_t size[2];
|
||||
cl_int2 offset;
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ void GroupNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
|
||||
void GroupNode::ungroup(ExecutionSystem &system)
|
||||
{
|
||||
bNode *bnode = this->getbNode();
|
||||
bNodeTree *subtree = (bNodeTree *)bnode->id;
|
||||
vector<InputSocket *> &inputsockets = this->getInputSockets();
|
||||
vector<OutputSocket *> &outputsockets = this->getOutputSockets();
|
||||
unsigned int index;
|
||||
@@ -44,6 +45,10 @@ void GroupNode::ungroup(ExecutionSystem &system)
|
||||
/* get the node list size _before_ adding proxy nodes, so they are available for linking */
|
||||
int nodes_start = system.getNodes().size();
|
||||
|
||||
/* missing node group datablock can happen with library linking */
|
||||
if(!subtree)
|
||||
return;
|
||||
|
||||
for (index = 0; index < inputsockets.size(); index++) {
|
||||
InputSocket *inputSocket = inputsockets[index];
|
||||
bNodeSocket *editorInput = inputSocket->getbNodeSocket();
|
||||
@@ -64,6 +69,5 @@ void GroupNode::ungroup(ExecutionSystem &system)
|
||||
}
|
||||
}
|
||||
|
||||
bNodeTree *subtree = (bNodeTree *)bnode->id;
|
||||
ExecutionSystemHelper::addbNodeTree(system, nodes_start, subtree, bnode);
|
||||
}
|
||||
|
||||
@@ -175,7 +175,8 @@ void WriteBufferOperation::executeOpenCLRegion(cl_context context, cl_program pr
|
||||
delete clKernelsToCleanUp;
|
||||
}
|
||||
|
||||
void WriteBufferOperation::readResolutionFromInputSocket() {
|
||||
void WriteBufferOperation::readResolutionFromInputSocket()
|
||||
{
|
||||
NodeOperation *inputOperation = this->getInputOperation(0);
|
||||
this->setWidth(inputOperation->getWidth());
|
||||
this->setHeight(inputOperation->getHeight());
|
||||
|
||||
@@ -33,4 +33,6 @@ struct Sequence;
|
||||
void ED_sequencer_select_sequence_single(struct Scene *scene, struct Sequence *seq, int deselect_all);
|
||||
void ED_sequencer_deselect_all(struct Scene *scene);
|
||||
|
||||
void ED_operatormacros_sequencer(void);
|
||||
|
||||
#endif /* __ED_SEQUENCER_H__ */
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
#include "ED_logic.h"
|
||||
#include "ED_clip.h"
|
||||
#include "ED_mask.h"
|
||||
#include "ED_sequencer.h"
|
||||
|
||||
#include "io_ops.h"
|
||||
|
||||
@@ -139,7 +140,8 @@ void ED_spacetypes_init(void)
|
||||
ED_operatormacros_clip();
|
||||
ED_operatormacros_curve();
|
||||
ED_operatormacros_mask();
|
||||
|
||||
ED_operatormacros_sequencer();
|
||||
|
||||
/* register dropboxes (can use macros) */
|
||||
spacetypes = BKE_spacetypes_list();
|
||||
for (type = spacetypes->first; type; type = type->next) {
|
||||
|
||||
@@ -1277,7 +1277,8 @@ void FILE_OT_hidedot(struct wmOperatorType *ot)
|
||||
ot->poll = ED_operator_file_active; /* <- important, handler is on window level */
|
||||
}
|
||||
|
||||
struct ARegion *file_buttons_region(struct ScrArea *sa){
|
||||
struct ARegion *file_buttons_region(struct ScrArea *sa)
|
||||
{
|
||||
ARegion *ar, *arnew;
|
||||
|
||||
for (ar = sa->regionbase.first; ar; ar = ar->next)
|
||||
|
||||
@@ -72,8 +72,11 @@
|
||||
#include "sequencer_intern.h"
|
||||
|
||||
|
||||
#define SEQ_LEFTHANDLE 1
|
||||
#define SEQ_RIGHTHANDLE 2
|
||||
#define SEQ_LEFTHANDLE 1
|
||||
#define SEQ_RIGHTHANDLE 2
|
||||
|
||||
#define SEQ_HANDLE_SIZE_MIN 7.0f
|
||||
#define SEQ_HANDLE_SIZE_MAX 40.0f
|
||||
|
||||
|
||||
/* Note, Don't use SEQ_BEGIN/SEQ_END while drawing!
|
||||
@@ -325,13 +328,19 @@ static void drawmeta_contents(Scene *scene, Sequence *seqm, float x1, float y1,
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
/* clamp handles to defined size in pixel space */
|
||||
static float draw_seq_handle_size_get_clamped(Sequence *seq, const float pixelx)
|
||||
{
|
||||
const float minhandle = pixelx * SEQ_HANDLE_SIZE_MIN;
|
||||
const float maxhandle = pixelx * SEQ_HANDLE_SIZE_MAX;
|
||||
return CLAMPIS(seq->handsize, minhandle, maxhandle);
|
||||
}
|
||||
|
||||
/* draw a handle, for each end of a sequence strip */
|
||||
static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short direction)
|
||||
static void draw_seq_handle(View2D *v2d, Sequence *seq, const float handsize_clamped, const short direction)
|
||||
{
|
||||
float v1[2], v2[2], v3[2], rx1 = 0, rx2 = 0; //for triangles and rect
|
||||
float x1, x2, y1, y2;
|
||||
float handsize;
|
||||
float minhandle, maxhandle;
|
||||
char numstr[32];
|
||||
unsigned int whichsel = 0;
|
||||
|
||||
@@ -340,31 +349,25 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
|
||||
|
||||
y1 = seq->machine + SEQ_STRIP_OFSBOTTOM;
|
||||
y2 = seq->machine + SEQ_STRIP_OFSTOP;
|
||||
|
||||
/* clamp handles to defined size in pixel space */
|
||||
handsize = seq->handsize;
|
||||
minhandle = 7;
|
||||
maxhandle = 40;
|
||||
CLAMP(handsize, minhandle * pixelx, maxhandle * pixelx);
|
||||
|
||||
|
||||
/* set up co-ordinates/dimensions for either left or right handle */
|
||||
if (direction == SEQ_LEFTHANDLE) {
|
||||
rx1 = x1;
|
||||
rx2 = x1 + handsize * 0.75f;
|
||||
rx2 = x1 + handsize_clamped * 0.75f;
|
||||
|
||||
v1[0] = x1 + handsize / 4; v1[1] = y1 + ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v2[0] = x1 + handsize / 4; v2[1] = y2 - ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v3[0] = v2[0] + handsize / 4; v3[1] = (y1 + y2) / 2.0f;
|
||||
v1[0] = x1 + handsize_clamped / 4; v1[1] = y1 + ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v2[0] = x1 + handsize_clamped / 4; v2[1] = y2 - ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v3[0] = v2[0] + handsize_clamped / 4; v3[1] = (y1 + y2) / 2.0f;
|
||||
|
||||
whichsel = SEQ_LEFTSEL;
|
||||
}
|
||||
else if (direction == SEQ_RIGHTHANDLE) {
|
||||
rx1 = x2 - handsize * 0.75f;
|
||||
rx1 = x2 - handsize_clamped * 0.75f;
|
||||
rx2 = x2;
|
||||
|
||||
v1[0] = x2 - handsize / 4; v1[1] = y1 + ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v2[0] = x2 - handsize / 4; v2[1] = y2 - ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v3[0] = v2[0] - handsize / 4; v3[1] = (y1 + y2) / 2.0f;
|
||||
v1[0] = x2 - handsize_clamped / 4; v1[1] = y1 + ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v2[0] = x2 - handsize_clamped / 4; v2[1] = y2 - ( ((y1 + y2) / 2.0f - y1) / 2);
|
||||
v3[0] = v2[0] - handsize_clamped / 4; v3[1] = (y1 + y2) / 2.0f;
|
||||
|
||||
whichsel = SEQ_RIGHTSEL;
|
||||
}
|
||||
@@ -404,7 +407,7 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(numstr, sizeof(numstr), "%d", seq->enddisp - 1);
|
||||
x1 = x2 - handsize * 0.75f;
|
||||
x1 = x2 - handsize_clamped * 0.75f;
|
||||
y1 = y2 + 0.05f;
|
||||
}
|
||||
UI_view2d_text_cache_add(v2d, x1, y1, numstr, col);
|
||||
@@ -530,67 +533,67 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float
|
||||
name = give_seqname(seq);
|
||||
|
||||
if (seq->type == SEQ_TYPE_META || seq->type == SEQ_TYPE_ADJUSTMENT) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s", seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d", name, seq->len);
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_SCENE) {
|
||||
if (seq->scene) {
|
||||
if (seq->scene_camera) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s (%s)",
|
||||
seq->len, name, seq->scene->id.name + 2, ((ID *)seq->scene_camera)->name + 2);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s (%s) | %d",
|
||||
name, seq->scene->id.name + 2, ((ID *)seq->scene_camera)->name + 2, seq->len);
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s",
|
||||
seq->len, name, seq->scene->id.name + 2);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s | %d",
|
||||
name, seq->scene->id.name + 2, seq->len);
|
||||
}
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s",
|
||||
seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d",
|
||||
name, seq->len);
|
||||
}
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_MOVIECLIP) {
|
||||
if (seq->clip && strcmp(name, seq->clip->id.name + 2) != 0) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s",
|
||||
seq->len, name, seq->clip->id.name + 2);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s | %d",
|
||||
name, seq->clip->id.name + 2, seq->len);
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s",
|
||||
seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d",
|
||||
name, seq->len);
|
||||
}
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_MASK) {
|
||||
if (seq->mask && strcmp(name, seq->mask->id.name + 2) != 0) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s",
|
||||
seq->len, name, seq->mask->id.name + 2);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s | %d",
|
||||
name, seq->mask->id.name + 2, seq->len);
|
||||
}
|
||||
else {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s",
|
||||
seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d",
|
||||
name, seq->len);
|
||||
}
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_MULTICAM) {
|
||||
BLI_snprintf(str, sizeof(str), "Cam | %s: %d",
|
||||
BLI_snprintf(str, sizeof(str), "Cam %s: %d",
|
||||
name, seq->multicam_source);
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_IMAGE) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s%s",
|
||||
seq->len, name, seq->strip->dir, seq->strip->stripdata->name);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s%s | %d",
|
||||
name, seq->strip->dir, seq->strip->stripdata->name, seq->len);
|
||||
}
|
||||
else if (seq->type & SEQ_TYPE_EFFECT) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s",
|
||||
seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d",
|
||||
name, seq->len);
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_SOUND_RAM) {
|
||||
if (seq->sound)
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s",
|
||||
seq->len, name, seq->sound->name);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s | %d",
|
||||
name, seq->sound->name, seq->len);
|
||||
else
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s",
|
||||
seq->len, name);
|
||||
BLI_snprintf(str, sizeof(str), "%s | %d",
|
||||
name, seq->len);
|
||||
}
|
||||
else if (seq->type == SEQ_TYPE_MOVIE) {
|
||||
BLI_snprintf(str, sizeof(str), "%d | %s: %s%s",
|
||||
seq->len, name, seq->strip->dir, seq->strip->stripdata->name);
|
||||
BLI_snprintf(str, sizeof(str), "%s: %s%s | %d",
|
||||
name, seq->strip->dir, seq->strip->stripdata->name, seq->len);
|
||||
}
|
||||
|
||||
if (seq->flag & SELECT) {
|
||||
@@ -679,6 +682,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
|
||||
View2D *v2d = &ar->v2d;
|
||||
float x1, x2, y1, y2;
|
||||
unsigned char col[3], background_col[3], is_single_image;
|
||||
const float handsize_clamped = draw_seq_handle_size_get_clamped(seq, pixelx);
|
||||
|
||||
/* we need to know if this is a single image/color or not for drawing */
|
||||
is_single_image = (char)seq_single_check(seq);
|
||||
@@ -706,8 +710,8 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
|
||||
if (!is_single_image)
|
||||
draw_seq_extensions(scene, ar, seq);
|
||||
|
||||
draw_seq_handle(v2d, seq, pixelx, SEQ_LEFTHANDLE);
|
||||
draw_seq_handle(v2d, seq, pixelx, SEQ_RIGHTHANDLE);
|
||||
draw_seq_handle(v2d, seq, handsize_clamped, SEQ_LEFTHANDLE);
|
||||
draw_seq_handle(v2d, seq, handsize_clamped, SEQ_RIGHTHANDLE);
|
||||
|
||||
/* draw the strip outline */
|
||||
x1 = seq->startdisp;
|
||||
@@ -766,8 +770,8 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline
|
||||
}
|
||||
|
||||
/* calculate if seq is long enough to print a name */
|
||||
x1 = seq->startdisp + seq->handsize;
|
||||
x2 = seq->enddisp - seq->handsize;
|
||||
x1 = seq->startdisp + handsize_clamped;
|
||||
x2 = seq->enddisp - handsize_clamped;
|
||||
|
||||
/* info text on the strip */
|
||||
if (x1 < v2d->cur.xmin) x1 = v2d->cur.xmin;
|
||||
|
||||
@@ -1570,16 +1570,6 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
return OPERATOR_CANCELLED;
|
||||
}
|
||||
|
||||
static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
|
||||
{
|
||||
sequencer_add_duplicate_exec(C, op);
|
||||
|
||||
RNA_enum_set(op->ptr, "mode", TFM_TRANSLATION);
|
||||
WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr);
|
||||
|
||||
return OPERATOR_FINISHED;
|
||||
}
|
||||
|
||||
void SEQUENCER_OT_duplicate(wmOperatorType *ot)
|
||||
{
|
||||
/* identifiers */
|
||||
@@ -1588,7 +1578,6 @@ void SEQUENCER_OT_duplicate(wmOperatorType *ot)
|
||||
ot->description = "Duplicate the selected strips";
|
||||
|
||||
/* api callbacks */
|
||||
ot->invoke = sequencer_add_duplicate_invoke;
|
||||
ot->exec = sequencer_add_duplicate_exec;
|
||||
ot->poll = ED_operator_sequencer_active;
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
|
||||
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
|
||||
WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0);
|
||||
@@ -321,3 +321,14 @@ void sequencer_keymap(wmKeyConfig *keyconf)
|
||||
#endif
|
||||
}
|
||||
|
||||
void ED_operatormacros_sequencer(void)
|
||||
{
|
||||
wmOperatorType *ot;
|
||||
wmOperatorTypeMacro *otmacro;
|
||||
|
||||
ot = WM_operatortype_append_macro("SEQUENCER_OT_duplicate_move", "Duplicate Strips",
|
||||
"Duplicate selected strips and move them", OPTYPE_UNDO | OPTYPE_REGISTER);
|
||||
|
||||
WM_operatortype_macro_define(ot, "SEQUENCER_OT_duplicate");
|
||||
WM_operatortype_macro_define(ot, "TRANSFORM_OT_translate");
|
||||
}
|
||||
|
||||
@@ -240,7 +240,8 @@ static struct GPUTextureState {
|
||||
|
||||
/* Mipmap settings */
|
||||
|
||||
void GPU_set_gpu_mipmapping(int gpu_mipmap){
|
||||
void GPU_set_gpu_mipmapping(int gpu_mipmap)
|
||||
{
|
||||
int old_value = GTS.gpu_mipmap;
|
||||
|
||||
/* only actually enable if it's supported */
|
||||
|
||||
@@ -332,7 +332,7 @@ struct ImBuf *imb_jp2_decode(unsigned char *mem, size_t size, int flags)
|
||||
return(ibuf);
|
||||
}
|
||||
|
||||
//static opj_image_t* rawtoimage(const char *filename, opj_cparameters_t *parameters, raw_cparameters_t *raw_cp) {
|
||||
//static opj_image_t* rawtoimage(const char *filename, opj_cparameters_t *parameters, raw_cparameters_t *raw_cp)
|
||||
/* prec can be 8, 12, 16 */
|
||||
|
||||
/* use inline because the float passed can be a function call that would end up being called many times */
|
||||
|
||||
@@ -144,7 +144,8 @@ static void rna_userdef_anisotropic_update(Main *bmain, Scene *scene, PointerRNA
|
||||
rna_userdef_update(bmain, scene, ptr);
|
||||
}
|
||||
|
||||
static void rna_userdef_gl_gpu_mipmaps(Main *bmain, Scene *scene, PointerRNA *ptr) {
|
||||
static void rna_userdef_gl_gpu_mipmaps(Main *bmain, Scene *scene, PointerRNA *ptr)
|
||||
{
|
||||
GPU_set_gpu_mipmapping(U.use_gpu_mipmap);
|
||||
rna_userdef_update(bmain, scene, ptr);
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ SCA_IActuator* SCA_PythonController::LinkedActuatorFromPy(PyObject *value)
|
||||
else if (PyObject_TypeCheck(value, &SCA_IActuator::Type)) {
|
||||
PyObjectPlus *value_plus= BGE_PROXY_REF(value);
|
||||
for (it = lacts.begin(); it!= lacts.end(); ++it) {
|
||||
if ( static_cast<SCA_IActuator*>(value_plus) == (*it) ) {
|
||||
if (static_cast<SCA_IActuator*>(value_plus) == (*it)) {
|
||||
return *it;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user