* Reverting Titlecard commit r37537

* Reverting update recent files commit r37155
* Turning reference counts into unsigned ints
* Minor things
This commit is contained in:
Joerg Mueller 2011-08-29 15:01:55 +00:00
parent 296cc41b03
commit 5bac37f6d4
21 changed files with 21 additions and 238 deletions

@ -49,7 +49,7 @@ private:
/**
* Saves the reference counts.
*/
static std::map<void*, int> m_references;
static std::map<void*, unsigned int> m_references;
public:
/**
@ -61,7 +61,7 @@ public:
if(!reference)
return;
std::map<void*, int>::iterator result = m_references.find(reference);
std::map<void*, unsigned int>::iterator result = m_references.find(reference);
if(result != m_references.end())
{
m_references[reference]++;

@ -30,4 +30,4 @@
#include "AUD_Reference.h"
std::map<void*, int> AUD_ReferenceHandler::m_references;
std::map<void*, unsigned int> AUD_ReferenceHandler::m_references;

@ -225,7 +225,6 @@ class SEQUENCER_MT_add_effect(Menu):
layout.operator("sequencer.effect_strip_add", text="Speed Control").type = 'SPEED'
layout.operator("sequencer.effect_strip_add", text="Multicam Selector").type = 'MULTICAM'
layout.operator("sequencer.effect_strip_add", text="Adjustment Layer").type = 'ADJUSTMENT'
layout.operator("sequencer.effect_strip_add", text="Title Card").type = 'TITLE_CARD'
class SEQUENCER_MT_strip(Menu):
@ -407,7 +406,7 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'PLUGIN',
'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED',
'MULTICAM', 'ADJUSTMENT', 'TITLE_CARD'}
'MULTICAM', 'ADJUSTMENT'}
def draw(self, context):
layout = self.layout
@ -475,11 +474,6 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
row.label("Cut To")
for i in range(1, strip.channel):
row.operator("sequencer.cut_multicam", text=str(i)).camera = i
elif strip.type == "TITLE_CARD":
layout.prop(strip, "title")
layout.prop(strip, "subtitle")
layout.prop(strip, "color_foreground")
layout.prop(strip, "color_background")
col = layout.column(align=True)
if strip.type == 'SPEED':
@ -551,8 +545,7 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, Panel):
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'PLUGIN',
'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
'MULTICAM', 'SPEED', 'ADJUSTMENT',
'TITLE_CARD'}
'MULTICAM', 'SPEED', 'ADJUSTMENT'}
def draw(self, context):
layout = self.layout
@ -713,8 +706,7 @@ class SEQUENCER_PT_filter(SequencerButtonsPanel, Panel):
'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
'PLUGIN',
'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
'MULTICAM', 'SPEED', 'ADJUSTMENT',
'TITLE_CARD'}
'MULTICAM', 'SPEED', 'ADJUSTMENT'}
def draw(self, context):
layout = self.layout

@ -746,7 +746,6 @@ class USERPREF_PT_file(Panel):
col.prop(paths, "save_version")
col.prop(paths, "recent_files")
col.prop(paths, "use_update_recent_files_on_load")
col.prop(paths, "use_save_preview_images")
col.label(text="Auto Save:")
col.prop(paths, "use_auto_save_temporary_files")

@ -215,6 +215,5 @@ void BLF_dir_free(char **dirs, int count);
// XXX, bad design
extern int blf_mono_font;
extern int blf_mono_font_render; // dont mess drawing with render threads.
extern int blf_default_font_render; // dont mess drawing with render threads.
#endif /* BLF_API_H */

@ -74,7 +74,6 @@ static int global_font_dpi= 72;
// XXX, should these be made into global_font_'s too?
int blf_mono_font= -1;
int blf_mono_font_render= -1;
int blf_default_font_render= -1;
static FontBLF *BLF_get(int fontid)
{

@ -40,11 +40,8 @@
#include "BLI_dynlib.h"
#include "BLI_math.h" /* windows needs for M_PI */
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLF_api.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "DNA_anim_types.h"
@ -2807,130 +2804,6 @@ static struct ImBuf * do_solid_color(
return out;
}
/* **********************************************************************
TITLE CARD
********************************************************************** */
static void init_title_card(Sequence *seq)
{
TitleCardVars *tv;
if(seq->effectdata)MEM_freeN(seq->effectdata);
seq->effectdata = MEM_callocN(sizeof(struct TitleCardVars), "titlecard");
tv = (TitleCardVars *)seq->effectdata;
BLI_strncpy(tv->titlestr, "Title goes here", sizeof(tv->titlestr));
tv->fgcol[0] = tv->fgcol[1] = tv->fgcol[2] = 1.0f; /* white */
}
static int num_inputs_titlecard(void)
{
return 0;
}
static void free_title_card(Sequence *seq)
{
if(seq->effectdata)MEM_freeN(seq->effectdata);
seq->effectdata = NULL;
}
static void copy_title_card(Sequence *dst, Sequence *src)
{
dst->effectdata = MEM_dupallocN(src->effectdata);
}
static int early_out_titlecard(struct Sequence *UNUSED(seq),
float UNUSED(facf0), float UNUSED(facf1))
{
return -1;
}
static struct ImBuf * do_title_card(
SeqRenderData context, Sequence *seq, float cfra,
float facf0, float facf1,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
struct ImBuf *ibuf3)
{
TitleCardVars *tv = (TitleCardVars *)seq->effectdata;
SolidColorVars cv = {{0}};
struct ImBuf *out;
int titleFontId = blf_default_font_render; // XXX: bad design!
int width = context.rectx;
int height = context.recty;
float w, h;
int x, y;
/* use fake solid-color vars to get backdrop (and an out buffer at the same time) */
VECCOPY(cv.col, tv->bgcol);
seq->effectdata = &cv;
out = do_solid_color(context, seq, cfra,
facf0, facf1,
ibuf1, ibuf2, ibuf3);
seq->effectdata = tv;
/* draw text */
/* FIXME: imbuf out->rect is unsigned int NOT unsigned char, but without passing this pointer
* this drawing code doesn't work. This cast really masks some potential bugs though...
*/
BLF_buffer(titleFontId, out->rect_float, (unsigned char *)out->rect, width, height, 4);
if (tv->titlestr[0]) {
/* automatic scale - these formulae have been derived experimentally:
* - base size is based on 40pt at 960 width
* - each 26 characters, size jumps down one step,
* but this decrease needs to be exponential to fit everything
*/
float lfac = strlen(tv->titlestr) / 26.0f;
float size = (width * 0.06f) * (1.0f - 0.1f*lfac*lfac);
BLF_size(titleFontId, size, 72);
BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0);
BLF_width_and_height(titleFontId, tv->titlestr, &w, &h);
x = width/2.0f - w/2.0f;
if (tv->subtitle[0])
y = height/2.0f + h;
else
y = height/2.0f;
BLF_position(titleFontId, x, y, 0.0);
BLF_draw_buffer(titleFontId, tv->titlestr);
}
if (tv->subtitle[0]) {
/* automatic scale - these formulae have been derived experimentally (as above):
* - base size is based on 20pt at 960 width
* - size steps aren't quite as refined here. Need a slower-growing curve!
*/
float lfac = strlen(tv->subtitle) / 36.0f;
float size = (width * 0.03f) * (1.0f - 0.1f*lfac*lfac*log(lfac));
BLF_size(titleFontId, size, 72);
BLF_buffer_col(titleFontId, tv->fgcol[0], tv->fgcol[1], tv->fgcol[2], 1.0);
BLF_width_and_height(titleFontId, tv->subtitle, &w, &h);
x = width/2.0f - w/2.0f;
if (tv->titlestr[0])
y = height/2.0f - h;
else
y = height/2.0f;
BLF_position(titleFontId, x, y, 0.0);
BLF_draw_buffer(titleFontId, tv->subtitle);
}
/* cleanup the buffer. */
BLF_buffer(UIFONT_DEFAULT, NULL, NULL, 0, 0, 0);
return out;
}
/* **********************************************************************
MULTICAM
********************************************************************** */
@ -3470,14 +3343,6 @@ static struct SeqEffectHandle get_sequence_effect_impl(int seq_type)
rval.early_out = early_out_adjustment;
rval.execute = do_adjustment;
break;
case SEQ_TITLECARD:
rval.init = init_title_card;
rval.num_inputs = num_inputs_titlecard;
rval.early_out = early_out_titlecard;
rval.free = free_title_card;
rval.copy = copy_title_card;
rval.execute = do_title_card;
break;
}
return rval;

@ -903,7 +903,6 @@ static const char *give_seqname_by_type(int type)
case SEQ_MULTICAM: return "Multicam";
case SEQ_ADJUSTMENT: return "Adjustment";
case SEQ_SPEED: return "Speed";
case SEQ_TITLECARD: return "Title Card";
default:
return NULL;
}
@ -3029,7 +3028,7 @@ Sequence *seq_foreground_frame_get(Scene *scene, int frame)
if(seq->flag & SEQ_MUTE || seq->startdisp > frame || seq->enddisp <= frame)
continue;
/* only use elements you can see - not */
if (ELEM6(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR, SEQ_TITLECARD)) {
if (ELEM5(seq->type, SEQ_IMAGE, SEQ_META, SEQ_SCENE, SEQ_MOVIE, SEQ_COLOR)) {
if (seq->machine > best_machine) {
best_seq = seq;
best_machine = seq->machine;

@ -24,7 +24,6 @@
#include "DNA_sound_types.h"
#include "DNA_speaker_types.h"
#define WITH_AUDASPACE
#ifdef WITH_AUDASPACE
# include "AUD_C-API.h"
#endif

@ -1919,9 +1919,6 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
case SEQ_TRANSFORM:
writestruct(wd, DATA, "TransformVars", 1, seq->effectdata);
break;
case SEQ_TITLECARD:
writestruct(wd, DATA, "TitleCardVars", 1, seq->effectdata);
break;
}
}

@ -295,7 +295,6 @@ void uiStyleInit(void)
{
uiFont *font= U.uifonts.first;
uiStyle *style= U.uistyles.first;
int defaultFontId = -1;
/* recover from uninitialized dpi */
if(U.dpi == 0)
@ -315,7 +314,6 @@ void uiStyleInit(void)
if(font->uifont_id==UIFONT_DEFAULT) {
font->blf_id= BLF_load_mem("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size);
defaultFontId = font->blf_id;
}
else {
font->blf_id= BLF_load(font->filename);
@ -353,14 +351,6 @@ void uiStyleInit(void)
blf_mono_font_render= BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
BLF_size(blf_mono_font_render, 12, 72);
/* also another copy of default for rendering else we get threading problems */
if (defaultFontId != -1) {
if (blf_default_font_render == -1)
blf_default_font_render= BLF_load_mem_unique("default", (unsigned char*)datatoc_bfont_ttf, datatoc_bfont_ttf_size);
BLF_size(blf_default_font_render, 12, 72);
}
}
void uiStyleFontSet(uiFontStyle *fs)

@ -127,7 +127,6 @@ static void get_seq_color3ubv(Scene *curscene, Sequence *seq, unsigned char col[
case SEQ_GLOW:
case SEQ_MULTICAM:
case SEQ_ADJUSTMENT:
case SEQ_TITLECARD:
UI_GetThemeColor3ubv(TH_SEQ_EFFECT, col);
/* slightly offset hue to distinguish different effects */

@ -94,10 +94,9 @@ EnumPropertyItem sequencer_prop_effect_types[] = {
{SEQ_GLOW, "GLOW", 0, "Glow", "Glow effect strip type"},
{SEQ_TRANSFORM, "TRANSFORM", 0, "Transform", "Transform effect strip type"},
{SEQ_COLOR, "COLOR", 0, "Color", "Color effect strip type"},
{SEQ_SPEED, "SPEED", 0, "Speed", ""},
{SEQ_SPEED, "SPEED", 0, "Speed", "Color effect strip type"},
{SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""},
{SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""},
{SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""},
{0, NULL, 0, NULL, NULL}
};

@ -227,14 +227,6 @@ typedef struct SolidColorVars {
float pad;
} SolidColorVars;
typedef struct TitleCardVars {
char titlestr[64];
char subtitle[128];
float fgcol[3];
float bgcol[3];
} TitleCardVars;
typedef struct SpeedControlVars {
float * frameMap;
float globalSpeed;
@ -328,8 +320,7 @@ typedef struct SpeedControlVars {
#define SEQ_SPEED 29
#define SEQ_MULTICAM 30
#define SEQ_ADJUSTMENT 31
#define SEQ_TITLECARD 40
#define SEQ_EFFECT_MAX 40
#define SEQ_EFFECT_MAX 31
#define STRIPELEM_FAILED 0
#define STRIPELEM_OK 1

@ -442,7 +442,6 @@ extern UserDef U; /* from blenkernel blender.c */
#define USER_NONEGFRAMES (1 << 24)
#define USER_TXT_TABSTOSPACES_DISABLE (1 << 25)
#define USER_TOOLTIPS_PYTHON (1 << 26)
#define USER_NO_RECENTLOAD_UPDATE (1 << 27)
/* helper macro for checking frame clamping */
#define FRAMENUMBER_MIN_CLAMP(cfra) \

@ -536,7 +536,6 @@ extern StructRNA RNA_ThemeWidgetColors;
extern StructRNA RNA_ThemeWidgetStateColors;
extern StructRNA RNA_TimelineMarker;
extern StructRNA RNA_Timer;
extern StructRNA RNA_TitleCardSequence;
extern StructRNA RNA_ToolSettings;
extern StructRNA RNA_TouchSensor;
extern StructRNA RNA_TrackToConstraint;

@ -2500,6 +2500,15 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Bitrate", "Audio bitrate(kb/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_audio_volume", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "ffcodecdata.audio_volume");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Volume", "Audio volume");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
#endif
// the following two "ffmpeg" settings are general audio settings
prop= RNA_def_property(srna, "ffmpeg_audio_mixrate", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "ffcodecdata.audio_mixrate");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
@ -2507,19 +2516,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Samplerate", "Audio samplerate(samples/s)");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_audio_volume", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "ffcodecdata.audio_volume");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_range(prop, 0.0f, 1.0f);
RNA_def_property_ui_text(prop, "Volume", "Audio volume");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);
prop= RNA_def_property(srna, "ffmpeg_audio_channels", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_sdna(prop, NULL, "ffcodecdata.audio_channels");
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_enum_items(prop, audio_channel_items);
RNA_def_property_ui_text(prop, "Audio Channels", "Sets the audio channel count");
#endif
prop= RNA_def_property(srna, "fps", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "frs_sec");

@ -409,8 +409,6 @@ static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr)
return &RNA_ColorSequence;
case SEQ_SPEED:
return &RNA_SpeedControlSequence;
case SEQ_TITLECARD:
return &RNA_TitleCardSequence;
default:
return &RNA_Sequence;
}
@ -889,7 +887,6 @@ static void rna_def_sequence(BlenderRNA *brna)
{SEQ_SPEED, "SPEED", 0, "Speed", ""},
{SEQ_MULTICAM, "MULTICAM", 0, "Multicam Selector", ""},
{SEQ_ADJUSTMENT, "ADJUSTMENT", 0, "Adjustment Layer", ""},
{SEQ_TITLECARD, "TITLE_CARD", 0, "Title Card", ""},
{0, NULL, 0, NULL, NULL}};
static const EnumPropertyItem blend_mode_items[]= {
@ -1683,37 +1680,6 @@ static void rna_def_speed_control(BlenderRNA *brna)
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
}
static void rna_def_title_card(BlenderRNA *brna)
{
StructRNA *srna;
PropertyRNA *prop;
srna = RNA_def_struct(brna, "TitleCardSequence", "EffectSequence");
RNA_def_struct_ui_text(srna, "Title Card Sequence", "Sequence strip creating an image displaying some text on a plain color background");
RNA_def_struct_sdna_from(srna, "TitleCardVars", "effectdata");
/* texts */
prop= RNA_def_property(srna, "title", PROP_STRING, PROP_NONE);
RNA_def_property_string_sdna(prop, NULL, "titlestr");
RNA_def_property_ui_text(prop, "Title", "Text for main heading");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
prop= RNA_def_property(srna, "subtitle", PROP_STRING, PROP_NONE);
RNA_def_property_ui_text(prop, "Subtitle", "Additional text to be shown under the main heading");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
/* colors */
prop= RNA_def_property(srna, "color_background", PROP_FLOAT, PROP_COLOR);
RNA_def_property_float_sdna(prop, NULL, "bgcol");
RNA_def_property_ui_text(prop, "Background Color", "");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
prop= RNA_def_property(srna, "color_foreground", PROP_FLOAT, PROP_COLOR);
RNA_def_property_float_sdna(prop, NULL, "fgcol");
RNA_def_property_ui_text(prop, "Text Color", "");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
}
void RNA_def_sequencer(BlenderRNA *brna)
{
rna_def_strip_element(brna);
@ -1739,7 +1705,6 @@ void RNA_def_sequencer(BlenderRNA *brna)
rna_def_transform(brna);
rna_def_solid_color(brna);
rna_def_speed_control(brna);
rna_def_title_card(brna);
}
#endif

@ -96,7 +96,7 @@ static void rna_def_sound(BlenderRNA *brna)
prop= RNA_def_property(srna, "mono", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flags", SOUND_FLAGS_MONO);
RNA_def_property_ui_text(prop, "Mono", "If the file contains multiple audio channels they are mixdown to a signle one.");
RNA_def_property_ui_text(prop, "Mono", "If the file contains multiple audio channels they are rendered to a single one.");
RNA_def_property_update(prop, 0, "rna_Sound_update");
}

@ -2950,11 +2950,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna)
prop= RNA_def_property(srna, "recent_files", PROP_INT, PROP_NONE);
RNA_def_property_range(prop, 0, 30);
RNA_def_property_ui_text(prop, "Recent Files", "Maximum number of recently opened files to remember");
prop= RNA_def_property(srna, "use_update_recent_files_on_load", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_NO_RECENTLOAD_UPDATE);
RNA_def_property_ui_text(prop, "Update Recent on Load", "When enabled, opening files will update the recent files list. Otherwise, updates only occur when saving");
prop= RNA_def_property(srna, "use_save_preview_images", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_SAVE_PREVIEWS);
RNA_def_property_ui_text(prop, "Save Preview Images", "Enables automatic saving of preview images in the .blend file");

@ -387,12 +387,7 @@ void WM_read_file(bContext *C, const char *filepath, ReportList *reports)
if (retval != BKE_READ_FILE_FAIL) {
G.relbase_valid = 1;
/* dont write recent file list if:
* 1) assuming automated tasks with background
* 2) user preference to not do this is enabled (i.e. developer testing mode)
*/
if (!G.background && !(U.flag & USER_NO_RECENTLOAD_UPDATE))
if(!G.background) /* assume automated tasks with background, dont write recent file list */
write_history();
}