style cleanup: whitespace

This commit is contained in:
2012-05-12 16:11:34 +00:00
parent bddc7dfc20
commit 53ee7908d6
14 changed files with 2673 additions and 2671 deletions

View File

@@ -416,10 +416,10 @@ struct CCGSubSurf {
static int VertDataEqual(const float a[], const float b[], const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++) {
if(a[i] != b[i])
for (i = 0; i < ss->meshIFC.numLayers; i++) {
if (a[i] != b[i])
return 0;
}
}
return 1;
}
@@ -431,38 +431,38 @@ static void VertDataZero(float v[], const CCGSubSurf *ss)
static void VertDataCopy(float dst[], const float src[], const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++)
for (i = 0; i < ss->meshIFC.numLayers; i++)
dst[i] = src[i];
}
static void VertDataAdd(float a[], const float b[], const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++)
for (i = 0; i < ss->meshIFC.numLayers; i++)
a[i] += b[i];
}
static void VertDataSub(float a[], const float b[], const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++)
for (i = 0; i < ss->meshIFC.numLayers; i++)
a[i] -= b[i];
}
static void VertDataMulN(float v[], float f, const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++)
for (i = 0; i < ss->meshIFC.numLayers; i++)
v[i] *= f;
}
static void VertDataAvg4(float v[],
const float a[], const float b[],
const float c[], const float d[],
const CCGSubSurf *ss)
const float a[], const float b[],
const float c[], const float d[],
const CCGSubSurf *ss)
{
int i;
for(i = 0; i < ss->meshIFC.numLayers; i++)
for (i = 0; i < ss->meshIFC.numLayers; i++)
v[i] = (a[i] + b[i] + c[i] + d[i]) * 0.25f;
}
@@ -1133,7 +1133,8 @@ CCGError ccgSubSurf_syncVert(CCGSubSurf *ss, CCGVertHDL vHDL, const void *vertDa
v->flags = Vert_eEffected | seamflag;
}
else if (!VertDataEqual(vertData, _vert_getCo(v, 0, ss->meshIFC.vertDataSize), ss) ||
((v->flags & Vert_eSeam) != seamflag)) {
((v->flags & Vert_eSeam) != seamflag))
{
int i, j;
VertDataCopy(_vert_getCo(v, 0, ss->meshIFC.vertDataSize), vertData, ss);
@@ -1165,7 +1166,7 @@ CCGError ccgSubSurf_syncVert(CCGSubSurf *ss, CCGVertHDL vHDL, const void *vertDa
v->flags = Vert_eEffected | seamflag;
}
else if (!VertDataEqual(vertData, _vert_getCo(v, 0, ss->meshIFC.vertDataSize), ss) ||
((v->flags & Vert_eSeam) != seamflag)) {
((v->flags & Vert_eSeam) != seamflag)) {
*prevp = v->next;
_ehash_insert(ss->vMap, (EHEntry *) v);
VertDataCopy(_vert_getCo(v, 0, ss->meshIFC.vertDataSize), vertData, ss);
@@ -2001,10 +2002,10 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss,
}
VertDataMulN(r, 1.0f / f->numVerts, ss);
VertDataMulN((float*)FACE_getCenterData(f), f->numVerts - 2.0f, ss);
VertDataAdd((float*)FACE_getCenterData(f), q, ss);
VertDataAdd((float*)FACE_getCenterData(f), r, ss);
VertDataMulN((float*)FACE_getCenterData(f), 1.0f / f->numVerts, ss);
VertDataMulN((float *)FACE_getCenterData(f), f->numVerts - 2.0f, ss);
VertDataAdd((float *)FACE_getCenterData(f), q, ss);
VertDataAdd((float *)FACE_getCenterData(f), r, ss);
VertDataMulN((float *)FACE_getCenterData(f), 1.0f / f->numVerts, ss);
for (S = 0; S < f->numVerts; S++) {
/* interior face shift
@@ -2024,14 +2025,14 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss,
FACE_getIFCo(f, nextLvl, S, fx + 1, fy - 1),
FACE_getIFCo(f, nextLvl, S, fx + 1, fy + 1),
FACE_getIFCo(f, nextLvl, S, fx - 1, fy + 1),
ss);
ss);
VertDataAvg4(r,
FACE_getIFCo(f, nextLvl, S, fx - 1, fy + 0),
FACE_getIFCo(f, nextLvl, S, fx + 1, fy + 0),
FACE_getIFCo(f, nextLvl, S, fx + 0, fy - 1),
FACE_getIFCo(f, nextLvl, S, fx + 0, fy + 1),
ss);
ss);
VertDataCopy(nCo, co, ss);
VertDataSub(nCo, q, ss);
@@ -2061,7 +2062,7 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss,
FACE_getIECo(f, nextLvl, S, fx + 1),
FACE_getIFCo(f, nextLvl, (S + 1) % f->numVerts, 1, fx),
FACE_getIFCo(f, nextLvl, S, fx, 1),
ss);
ss);
VertDataCopy(nCo, co, ss);
VertDataSub(nCo, q, ss);
@@ -2099,8 +2100,8 @@ static void ccgSubSurf__calcSubdivLevel(CCGSubSurf *ss,
CCGEdge *e = FACE_getEdges(f)[S];
CCGEdge *prevE = FACE_getEdges(f)[(S + f->numVerts - 1) % f->numVerts];
VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, nextLvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], nextLvl), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, cornerIdx), EDGE_getCo(FACE_getEdges(f)[S], nextLvl, cornerIdx), ss);
for (x = 1; x < gridSize - 1; x++) {
@@ -2189,7 +2190,7 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
VertDataAdd(q, VERT_getCo(e->v1, curLvl), ss);
for (i = 0; i < e->numFaces; i++) {
CCGFace *f = e->faces[i];
VertDataAdd(q, (float*)FACE_getCenterData(f), ss);
VertDataAdd(q, (float *)FACE_getCenterData(f), ss);
numFaces++;
}
VertDataMulN(q, 1.0f / (2.0f + numFaces), ss);
@@ -2265,7 +2266,7 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
VertDataZero(q, ss);
for (i = 0; i < v->numFaces; i++) {
CCGFace *f = v->faces[i];
VertDataAdd(q, (float*)FACE_getCenterData(f), ss);
VertDataAdd(q, (float *)FACE_getCenterData(f), ss);
numFaces++;
}
VertDataMulN(q, 1.0f / numFaces, ss);
@@ -2365,8 +2366,8 @@ static void ccgSubSurf__sync(CCGSubSurf *ss)
CCGEdge *e = FACE_getEdges(f)[S];
CCGEdge *prevE = FACE_getEdges(f)[(S + f->numVerts - 1) % f->numVerts];
VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, nextLvl, S, 0, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, nextLvl, S, 1, 1), VERT_getCo(FACE_getVerts(f)[S], nextLvl), ss);
VertDataCopy(FACE_getIECo(f, nextLvl, S, 1), EDGE_getCo(FACE_getEdges(f)[S], nextLvl, 1), ss);
@@ -2495,7 +2496,7 @@ CCGError ccgSubSurf_updateFromFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF
CCGEdge *e = FACE_getEdges(f)[S];
CCGEdge *prevE = FACE_getEdges(f)[(S + f->numVerts - 1) % f->numVerts];
VertDataCopy((float*)FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0), ss);
VertDataCopy((float *)FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0), ss);
VertDataCopy(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx), ss);
for (x = 0; x < gridSize; x++)
@@ -2546,7 +2547,7 @@ CCGError ccgSubSurf_updateToFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF,
VertDataCopy(FACE_getIFCo(f, lvl, S, x, 0), FACE_getIECo(f, lvl, S, x), ss);
}
VertDataCopy(FACE_getIFCo(f, lvl, S, 0, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, lvl, S, 0, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], lvl), ss);
}
}
@@ -2595,7 +2596,7 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in
for (i = 0; i < numEffectedF; i++) {
CCGFace *f = effectedF[i];
VertDataZero((float*)FACE_getCenterData(f), ss);
VertDataZero((float *)FACE_getCenterData(f), ss);
for (S = 0; S < f->numVerts; S++)
for (x = 0; x < gridSize; x++)
@@ -2606,7 +2607,7 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in
CCGEdge *e = FACE_getEdges(f)[S];
CCGEdge *prevE = FACE_getEdges(f)[prevS];
VertDataAdd((float*)FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0), ss);
VertDataAdd((float *)FACE_getCenterData(f), FACE_getIFCo(f, lvl, S, 0, 0), ss);
if (FACE_getVerts(f)[S]->flags & Vert_eEffected)
VertDataAdd(VERT_getCo(FACE_getVerts(f)[S], lvl), FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx), ss);
@@ -2648,7 +2649,7 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in
for (i = 0; i < numEffectedF; i++) {
CCGFace *f = effectedF[i];
VertDataMulN((float*)FACE_getCenterData(f), 1.0f / f->numVerts, ss);
VertDataMulN((float *)FACE_getCenterData(f), 1.0f / f->numVerts, ss);
for (S = 0; S < f->numVerts; S++)
for (x = 1; x < gridSize - 1; x++)
@@ -2659,7 +2660,7 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in
CCGEdge *e = FACE_getEdges(f)[S];
CCGEdge *prevE = FACE_getEdges(f)[prevS];
VertDataCopy(FACE_getIFCo(f, lvl, S, 0, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, lvl, S, 0, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIFCo(f, lvl, S, cornerIdx, cornerIdx), VERT_getCo(FACE_getVerts(f)[S], lvl), ss);
for (x = 1; x < gridSize - 1; x++) {
@@ -2674,7 +2675,7 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in
VertDataCopy(FACE_getIFCo(f, lvl, S, x, cornerIdx), _edge_getCoVert(prevE, FACE_getVerts(f)[S], lvl, eI, vertDataSize), ss);
}
VertDataCopy(FACE_getIECo(f, lvl, S, 0), (float*)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, lvl, S, 0), (float *)FACE_getCenterData(f), ss);
VertDataCopy(FACE_getIECo(f, lvl, S, gridSize - 1), FACE_getIFCo(f, lvl, S, gridSize - 1, 0), ss);
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -39,47 +39,47 @@
/************************* File Format Definitions ***************************/
#define CDF_ENDIAN_LITTLE 0
#define CDF_ENDIAN_BIG 1
#define CDF_ENDIAN_LITTLE 0
#define CDF_ENDIAN_BIG 1
#define CDF_DATA_FLOAT 0
#define CDF_DATA_FLOAT 0
typedef struct CDataFileHeader {
char ID[4]; /* "BCDF" */
char endian; /* little, big */
char version; /* non-compatible versions */
char subversion; /* compatible sub versions */
char pad; /* padding */
char ID[4]; /* "BCDF" */
char endian; /* little, big */
char version; /* non-compatible versions */
char subversion; /* compatible sub versions */
char pad; /* padding */
int structbytes; /* size of this struct in bytes */
int type; /* image, mesh */
int totlayer; /* number of layers in the file */
int structbytes; /* size of this struct in bytes */
int type; /* image, mesh */
int totlayer; /* number of layers in the file */
} CDataFileHeader;
typedef struct CDataFileImageHeader {
int structbytes; /* size of this struct in bytes */
int width; /* image width */
int height; /* image height */
int tile_size; /* tile size (required power of 2) */
int structbytes; /* size of this struct in bytes */
int width; /* image width */
int height; /* image height */
int tile_size; /* tile size (required power of 2) */
} CDataFileImageHeader;
typedef struct CDataFileMeshHeader {
int structbytes; /* size of this struct in bytes */
int structbytes; /* size of this struct in bytes */
} CDataFileMeshHeader;
struct CDataFileLayer {
int structbytes; /* size of this struct in bytes */
int datatype; /* only float for now */
uint64_t datasize; /* size of data in layer */
int type; /* layer type */
char name[CDF_LAYER_NAME_MAX]; /* layer name */
int structbytes; /* size of this struct in bytes */
int datatype; /* only float for now */
uint64_t datasize; /* size of data in layer */
int type; /* layer type */
char name[CDF_LAYER_NAME_MAX]; /* layer name */
};
/**************************** Other Definitions ******************************/
#define CDF_VERSION 0
#define CDF_SUBVERSION 0
#define CDF_TILE_SIZE 64
#define CDF_VERSION 0
#define CDF_SUBVERSION 0
#define CDF_TILE_SIZE 64
struct CDataFile {
int type;
@@ -121,9 +121,9 @@ static int cdf_data_type_size(int datatype)
CDataFile *cdf_create(int type)
{
CDataFile *cdf= MEM_callocN(sizeof(CDataFile), "CDataFile");
CDataFile *cdf = MEM_callocN(sizeof(CDataFile), "CDataFile");
cdf->type= type;
cdf->type = type;
return cdf;
}
@@ -147,11 +147,11 @@ static int cdf_read_header(CDataFile *cdf)
CDataFileImageHeader *image;
CDataFileMeshHeader *mesh;
CDataFileLayer *layer;
FILE *f= cdf->readf;
FILE *f = cdf->readf;
size_t offset = 0;
int a;
header= &cdf->header;
header = &cdf->header;
if (!fread(header, sizeof(CDataFileHeader), 1, cdf->readf))
return 0;
@@ -161,8 +161,8 @@ static int cdf_read_header(CDataFile *cdf)
if (header->version > CDF_VERSION)
return 0;
cdf->switchendian= header->endian != cdf_endian();
header->endian= cdf_endian();
cdf->switchendian = header->endian != cdf_endian();
header->endian = cdf_endian();
if (cdf->switchendian) {
SWITCH_INT(header->type);
@@ -174,13 +174,13 @@ static int cdf_read_header(CDataFile *cdf)
return 0;
offset += header->structbytes;
header->structbytes= sizeof(CDataFileHeader);
header->structbytes = sizeof(CDataFileHeader);
if (fseek(f, offset, SEEK_SET) != 0)
return 0;
if (header->type == CDF_TYPE_IMAGE) {
image= &cdf->btype.image;
image = &cdf->btype.image;
if (!fread(image, sizeof(CDataFileImageHeader), 1, f))
return 0;
@@ -192,10 +192,10 @@ static int cdf_read_header(CDataFile *cdf)
}
offset += image->structbytes;
image->structbytes= sizeof(CDataFileImageHeader);
image->structbytes = sizeof(CDataFileImageHeader);
}
else if (header->type == CDF_TYPE_MESH) {
mesh= &cdf->btype.mesh;
mesh = &cdf->btype.mesh;
if (!fread(mesh, sizeof(CDataFileMeshHeader), 1, f))
return 0;
@@ -203,17 +203,17 @@ static int cdf_read_header(CDataFile *cdf)
SWITCH_INT(mesh->structbytes);
offset += mesh->structbytes;
mesh->structbytes= sizeof(CDataFileMeshHeader);
mesh->structbytes = sizeof(CDataFileMeshHeader);
}
if (fseek(f, offset, SEEK_SET) != 0)
return 0;
cdf->layer= MEM_callocN(sizeof(CDataFileLayer)*header->totlayer, "CDataFileLayer");
cdf->totlayer= header->totlayer;
cdf->layer = MEM_callocN(sizeof(CDataFileLayer) * header->totlayer, "CDataFileLayer");
cdf->totlayer = header->totlayer;
for (a=0; a<header->totlayer; a++) {
layer= &cdf->layer[a];
for (a = 0; a < header->totlayer; a++) {
layer = &cdf->layer[a];
if (!fread(layer, sizeof(CDataFileLayer), 1, f))
return 0;
@@ -229,13 +229,13 @@ static int cdf_read_header(CDataFile *cdf)
return 0;
offset += layer->structbytes;
layer->structbytes= sizeof(CDataFileLayer);
layer->structbytes = sizeof(CDataFileLayer);
if (fseek(f, offset, SEEK_SET) != 0)
return 0;
}
cdf->dataoffset= offset;
cdf->dataoffset = offset;
return 1;
}
@@ -246,27 +246,27 @@ static int cdf_write_header(CDataFile *cdf)
CDataFileImageHeader *image;
CDataFileMeshHeader *mesh;
CDataFileLayer *layer;
FILE *f= cdf->writef;
FILE *f = cdf->writef;
int a;
header= &cdf->header;
header = &cdf->header;
if (!fwrite(header, sizeof(CDataFileHeader), 1, f))
return 0;
if (header->type == CDF_TYPE_IMAGE) {
image= &cdf->btype.image;
image = &cdf->btype.image;
if (!fwrite(image, sizeof(CDataFileImageHeader), 1, f))
return 0;
}
else if (header->type == CDF_TYPE_MESH) {
mesh= &cdf->btype.mesh;
mesh = &cdf->btype.mesh;
if (!fwrite(mesh, sizeof(CDataFileMeshHeader), 1, f))
return 0;
}
for (a=0; a<header->totlayer; a++) {
layer= &cdf->layer[a];
for (a = 0; a < header->totlayer; a++) {
layer = &cdf->layer[a];
if (!fwrite(layer, sizeof(CDataFileLayer), 1, f))
return 0;
@@ -279,11 +279,11 @@ int cdf_read_open(CDataFile *cdf, const char *filename)
{
FILE *f;
f= BLI_fopen(filename, "rb");
f = BLI_fopen(filename, "rb");
if (!f)
return 0;
cdf->readf= f;
cdf->readf = f;
if (!cdf_read_header(cdf)) {
cdf_read_close(cdf);
@@ -304,8 +304,8 @@ int cdf_read_layer(CDataFile *cdf, CDataFileLayer *blay)
int a;
/* seek to right location in file */
offset= cdf->dataoffset;
for (a=0; a<cdf->totlayer; a++) {
offset = cdf->dataoffset;
for (a = 0; a < cdf->totlayer; a++) {
if (&cdf->layer[a] == blay)
break;
else
@@ -326,9 +326,9 @@ int cdf_read_data(CDataFile *cdf, unsigned int size, void *data)
/* switch endian if necessary */
if (cdf->switchendian) {
fdata= data;
fdata = data;
for (a=0; a<size/sizeof(float); a++) {
for (a = 0; a < size / sizeof(float); a++) {
SWITCH_INT(fdata[a]);
}
}
@@ -340,7 +340,7 @@ void cdf_read_close(CDataFile *cdf)
{
if (cdf->readf) {
fclose(cdf->readf);
cdf->readf= NULL;
cdf->readf = NULL;
}
}
@@ -351,34 +351,34 @@ int cdf_write_open(CDataFile *cdf, const char *filename)
CDataFileMeshHeader *mesh;
FILE *f;
f= BLI_fopen(filename, "wb");
f = BLI_fopen(filename, "wb");
if (!f)
return 0;
cdf->writef= f;
cdf->writef = f;
/* fill header */
header= &cdf->header;
header = &cdf->header;
/* strcpy(, "BCDF"); // terminator out of range */
header->ID[0]= 'B'; header->ID[1]= 'C'; header->ID[2]= 'D'; header->ID[3]= 'F';
header->endian= cdf_endian();
header->version= CDF_VERSION;
header->subversion= CDF_SUBVERSION;
header->ID[0] = 'B'; header->ID[1] = 'C'; header->ID[2] = 'D'; header->ID[3] = 'F';
header->endian = cdf_endian();
header->version = CDF_VERSION;
header->subversion = CDF_SUBVERSION;
header->structbytes= sizeof(CDataFileHeader);
header->type= cdf->type;
header->totlayer= cdf->totlayer;
header->structbytes = sizeof(CDataFileHeader);
header->type = cdf->type;
header->totlayer = cdf->totlayer;
if (cdf->type == CDF_TYPE_IMAGE) {
/* fill image header */
image= &cdf->btype.image;
image->structbytes= sizeof(CDataFileImageHeader);
image->tile_size= CDF_TILE_SIZE;
image = &cdf->btype.image;
image->structbytes = sizeof(CDataFileImageHeader);
image->tile_size = CDF_TILE_SIZE;
}
else if (cdf->type == CDF_TYPE_MESH) {
/* fill mesh header */
mesh= &cdf->btype.mesh;
mesh->structbytes= sizeof(CDataFileMeshHeader);
mesh = &cdf->btype.mesh;
mesh->structbytes = sizeof(CDataFileMeshHeader);
}
cdf_write_header(cdf);
@@ -404,7 +404,7 @@ void cdf_write_close(CDataFile *cdf)
{
if (cdf->writef) {
fclose(cdf->writef);
cdf->writef= NULL;
cdf->writef = NULL;
}
}
@@ -420,8 +420,8 @@ CDataFileLayer *cdf_layer_find(CDataFile *cdf, int type, const char *name)
CDataFileLayer *layer;
int a;
for (a=0; a<cdf->totlayer; a++) {
layer= &cdf->layer[a];
for (a = 0; a < cdf->totlayer; a++) {
layer = &cdf->layer[a];
if (layer->type == type && strcmp(layer->name, name) == 0)
return layer;
@@ -435,18 +435,18 @@ CDataFileLayer *cdf_layer_add(CDataFile *cdf, int type, const char *name, size_t
CDataFileLayer *newlayer, *layer;
/* expand array */
newlayer= MEM_callocN(sizeof(CDataFileLayer)*(cdf->totlayer+1), "CDataFileLayer");
memcpy(newlayer, cdf->layer, sizeof(CDataFileLayer)*cdf->totlayer);
cdf->layer= newlayer;
newlayer = MEM_callocN(sizeof(CDataFileLayer) * (cdf->totlayer + 1), "CDataFileLayer");
memcpy(newlayer, cdf->layer, sizeof(CDataFileLayer) * cdf->totlayer);
cdf->layer = newlayer;
cdf->totlayer++;
/* fill in new layer */
layer= &cdf->layer[cdf->totlayer-1];
layer->structbytes= sizeof(CDataFileLayer);
layer->datatype= CDF_DATA_FLOAT;
layer->datasize= datasize;
layer->type= type;
layer = &cdf->layer[cdf->totlayer - 1];
layer->structbytes = sizeof(CDataFileLayer);
layer->datatype = CDF_DATA_FLOAT;
layer->datasize = datasize;
layer->type = type;
BLI_strncpy(layer->name, name, CDF_LAYER_NAME_MAX);
return layer;

File diff suppressed because it is too large Load Diff

View File

@@ -43,61 +43,61 @@ typedef struct {
const char *name, *plural;
int flags;
#define IDTYPE_FLAGS_ISLINKABLE (1<<0)
#define IDTYPE_FLAGS_ISLINKABLE (1 << 0)
} IDType;
/* plural need to match rna_main.c's MainCollectionDef */
static IDType idtypes[]= {
{ ID_AC, "Action", "actions", IDTYPE_FLAGS_ISLINKABLE},
{ ID_AR, "Armature", "armatures", IDTYPE_FLAGS_ISLINKABLE},
{ ID_BR, "Brush", "brushes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_CA, "Camera", "cameras", IDTYPE_FLAGS_ISLINKABLE},
{ ID_CU, "Curve", "curves", IDTYPE_FLAGS_ISLINKABLE},
{ ID_GD, "GPencil", "grease_pencil", IDTYPE_FLAGS_ISLINKABLE}, /* rename gpencil */
{ ID_GR, "Group", "groups", IDTYPE_FLAGS_ISLINKABLE},
{ ID_ID, "ID", "ids", 0}, /* plural is fake */
{ ID_IM, "Image", "images", IDTYPE_FLAGS_ISLINKABLE},
{ ID_IP, "Ipo", "ipos", IDTYPE_FLAGS_ISLINKABLE}, /* deprecated */
{ ID_KE, "Key", "shape_keys", 0},
{ ID_LA, "Lamp", "lamps", IDTYPE_FLAGS_ISLINKABLE},
{ ID_LI, "Library", "libraries", 0},
{ ID_LT, "Lattice", "lattices", IDTYPE_FLAGS_ISLINKABLE},
{ ID_MA, "Material", "materials", IDTYPE_FLAGS_ISLINKABLE},
{ ID_MB, "Metaball", "metaballs", IDTYPE_FLAGS_ISLINKABLE},
{ ID_ME, "Mesh", "meshes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_NT, "NodeTree", "node_groups", IDTYPE_FLAGS_ISLINKABLE},
{ ID_OB, "Object", "objects", IDTYPE_FLAGS_ISLINKABLE},
{ ID_PA, "ParticleSettings", "particles", 0},
{ ID_SCE, "Scene", "scenes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_SCR, "Screen", "screens", 0},
{ ID_SEQ, "Sequence", "sequences", 0}, /* not actually ID data */
{ ID_SPK, "Speaker", "speakers", IDTYPE_FLAGS_ISLINKABLE},
{ ID_SO, "Sound", "sounds", IDTYPE_FLAGS_ISLINKABLE},
{ ID_TE, "Texture", "textures", IDTYPE_FLAGS_ISLINKABLE},
{ ID_TXT, "Text", "texts", IDTYPE_FLAGS_ISLINKABLE},
{ ID_VF, "VFont", "fonts", IDTYPE_FLAGS_ISLINKABLE},
{ ID_WO, "World", "worlds", IDTYPE_FLAGS_ISLINKABLE},
{ ID_WM, "WindowManager", "window_managers", 0},
{ ID_MC, "MovieClip", "movieclips", IDTYPE_FLAGS_ISLINKABLE},
static IDType idtypes[] = {
{ ID_AC, "Action", "actions", IDTYPE_FLAGS_ISLINKABLE},
{ ID_AR, "Armature", "armatures", IDTYPE_FLAGS_ISLINKABLE},
{ ID_BR, "Brush", "brushes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_CA, "Camera", "cameras", IDTYPE_FLAGS_ISLINKABLE},
{ ID_CU, "Curve", "curves", IDTYPE_FLAGS_ISLINKABLE},
{ ID_GD, "GPencil", "grease_pencil", IDTYPE_FLAGS_ISLINKABLE}, /* rename gpencil */
{ ID_GR, "Group", "groups", IDTYPE_FLAGS_ISLINKABLE},
{ ID_ID, "ID", "ids", 0}, /* plural is fake */
{ ID_IM, "Image", "images", IDTYPE_FLAGS_ISLINKABLE},
{ ID_IP, "Ipo", "ipos", IDTYPE_FLAGS_ISLINKABLE}, /* deprecated */
{ ID_KE, "Key", "shape_keys", 0},
{ ID_LA, "Lamp", "lamps", IDTYPE_FLAGS_ISLINKABLE},
{ ID_LI, "Library", "libraries", 0},
{ ID_LT, "Lattice", "lattices", IDTYPE_FLAGS_ISLINKABLE},
{ ID_MA, "Material", "materials", IDTYPE_FLAGS_ISLINKABLE},
{ ID_MB, "Metaball", "metaballs", IDTYPE_FLAGS_ISLINKABLE},
{ ID_ME, "Mesh", "meshes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_NT, "NodeTree", "node_groups", IDTYPE_FLAGS_ISLINKABLE},
{ ID_OB, "Object", "objects", IDTYPE_FLAGS_ISLINKABLE},
{ ID_PA, "ParticleSettings", "particles", 0},
{ ID_SCE, "Scene", "scenes", IDTYPE_FLAGS_ISLINKABLE},
{ ID_SCR, "Screen", "screens", 0},
{ ID_SEQ, "Sequence", "sequences", 0}, /* not actually ID data */
{ ID_SPK, "Speaker", "speakers", IDTYPE_FLAGS_ISLINKABLE},
{ ID_SO, "Sound", "sounds", IDTYPE_FLAGS_ISLINKABLE},
{ ID_TE, "Texture", "textures", IDTYPE_FLAGS_ISLINKABLE},
{ ID_TXT, "Text", "texts", IDTYPE_FLAGS_ISLINKABLE},
{ ID_VF, "VFont", "fonts", IDTYPE_FLAGS_ISLINKABLE},
{ ID_WO, "World", "worlds", IDTYPE_FLAGS_ISLINKABLE},
{ ID_WM, "WindowManager", "window_managers", 0},
{ ID_MC, "MovieClip", "movieclips", IDTYPE_FLAGS_ISLINKABLE},
};
static int nidtypes= sizeof(idtypes)/sizeof(idtypes[0]);
static int nidtypes = sizeof(idtypes) / sizeof(idtypes[0]);
static IDType *idtype_from_name(const char *str)
{
int i= nidtypes;
int i = nidtypes;
while (i--)
if (strcmp(str, idtypes[i].name)==0)
if (strcmp(str, idtypes[i].name) == 0)
return &idtypes[i];
return NULL;
}
static IDType *idtype_from_code(int code)
{
int i= nidtypes;
int i = nidtypes;
while (i--)
if (code==idtypes[i].code)
if (code == idtypes[i].code)
return &idtypes[i];
return NULL;
@@ -105,34 +105,34 @@ static IDType *idtype_from_code(int code)
int BKE_idcode_is_valid(int code)
{
return idtype_from_code(code)?1:0;
return idtype_from_code(code) ? 1 : 0;
}
int BKE_idcode_is_linkable(int code)
{
IDType *idt= idtype_from_code(code);
return idt?(idt->flags&IDTYPE_FLAGS_ISLINKABLE):0;
IDType *idt = idtype_from_code(code);
return idt ? (idt->flags & IDTYPE_FLAGS_ISLINKABLE) : 0;
}
const char *BKE_idcode_to_name(int code)
{
IDType *idt= idtype_from_code(code);
IDType *idt = idtype_from_code(code);
return idt?idt->name:NULL;
return idt ? idt->name : NULL;
}
int BKE_idcode_from_name(const char *name)
{
IDType *idt= idtype_from_name(name);
IDType *idt = idtype_from_name(name);
return idt?idt->code:0;
return idt ? idt->code : 0;
}
const char *BKE_idcode_to_name_plural(int code)
{
IDType *idt= idtype_from_code(code);
IDType *idt = idtype_from_code(code);
return idt?idt->plural:NULL;
return idt ? idt->plural : NULL;
}
int BKE_idcode_iter_step(int *index)

View File

@@ -82,8 +82,8 @@ void free_nlastrip(ListBase *strips, NlaStrip *strip)
return;
/* free child-strips */
for (cs= strip->strips.first; cs; cs= csn) {
csn= cs->next;
for (cs = strip->strips.first; cs; cs = csn) {
csn = cs->next;
free_nlastrip(&strip->strips, cs);
}
@@ -120,8 +120,8 @@ void free_nlatrack(ListBase *tracks, NlaTrack *nlt)
return;
/* free strips */
for (strip= nlt->strips.first; strip; strip= stripn) {
stripn= strip->next;
for (strip = nlt->strips.first; strip; strip = stripn) {
stripn = strip->next;
free_nlastrip(&nlt->strips, strip);
}
@@ -144,19 +144,19 @@ void free_nladata(ListBase *tracks)
return;
/* free tracks one by one */
for (nlt= tracks->first; nlt; nlt= nltn) {
nltn= nlt->next;
for (nlt = tracks->first; nlt; nlt = nltn) {
nltn = nlt->next;
free_nlatrack(tracks, nlt);
}
/* clear the list's pointers to be safe */
tracks->first= tracks->last= NULL;
tracks->first = tracks->last = NULL;
}
/* Copying ------------------------------------------- */
/* Copy NLA strip */
NlaStrip *copy_nlastrip (NlaStrip *strip)
NlaStrip *copy_nlastrip(NlaStrip *strip)
{
NlaStrip *strip_d;
NlaStrip *cs, *cs_d;
@@ -166,8 +166,8 @@ NlaStrip *copy_nlastrip (NlaStrip *strip)
return NULL;
/* make a copy */
strip_d= MEM_dupallocN(strip);
strip_d->next= strip_d->prev= NULL;
strip_d = MEM_dupallocN(strip);
strip_d->next = strip_d->prev = NULL;
/* increase user-count of action */
if (strip_d->act)
@@ -178,10 +178,10 @@ NlaStrip *copy_nlastrip (NlaStrip *strip)
copy_fmodifiers(&strip_d->modifiers, &strip->modifiers);
/* make a copy of all the child-strips, one at a time */
strip_d->strips.first= strip_d->strips.last= NULL;
strip_d->strips.first = strip_d->strips.last = NULL;
for (cs= strip->strips.first; cs; cs= cs->next) {
cs_d= copy_nlastrip(cs);
for (cs = strip->strips.first; cs; cs = cs->next) {
cs_d = copy_nlastrip(cs);
BLI_addtail(&strip_d->strips, cs_d);
}
@@ -190,7 +190,7 @@ NlaStrip *copy_nlastrip (NlaStrip *strip)
}
/* Copy NLA Track */
NlaTrack *copy_nlatrack (NlaTrack *nlt)
NlaTrack *copy_nlatrack(NlaTrack *nlt)
{
NlaStrip *strip, *strip_d;
NlaTrack *nlt_d;
@@ -200,14 +200,14 @@ NlaTrack *copy_nlatrack (NlaTrack *nlt)
return NULL;
/* make a copy */
nlt_d= MEM_dupallocN(nlt);
nlt_d->next= nlt_d->prev= NULL;
nlt_d = MEM_dupallocN(nlt);
nlt_d->next = nlt_d->prev = NULL;
/* make a copy of all the strips, one at a time */
nlt_d->strips.first= nlt_d->strips.last= NULL;
nlt_d->strips.first = nlt_d->strips.last = NULL;
for (strip= nlt->strips.first; strip; strip= strip->next) {
strip_d= copy_nlastrip(strip);
for (strip = nlt->strips.first; strip; strip = strip->next) {
strip_d = copy_nlastrip(strip);
BLI_addtail(&nlt_d->strips, strip_d);
}
@@ -225,12 +225,12 @@ void copy_nladata(ListBase *dst, ListBase *src)
return;
/* clear out the destination list first for precautions... */
dst->first= dst->last= NULL;
dst->first = dst->last = NULL;
/* copy each NLA-track, one at a time */
for (nlt= src->first; nlt; nlt= nlt->next) {
for (nlt = src->first; nlt; nlt = nlt->next) {
/* make a copy, and add the copy to the destination list */
nlt_d= copy_nlatrack(nlt);
nlt_d = copy_nlatrack(nlt);
BLI_addtail(dst, nlt_d);
}
}
@@ -240,7 +240,7 @@ void copy_nladata(ListBase *dst, ListBase *src)
/* Add a NLA Track to the given AnimData
* - prev: NLA-Track to add the new one after
*/
NlaTrack *add_nlatrack (AnimData *adt, NlaTrack *prev)
NlaTrack *add_nlatrack(AnimData *adt, NlaTrack *prev)
{
NlaTrack *nlt;
@@ -249,11 +249,11 @@ NlaTrack *add_nlatrack (AnimData *adt, NlaTrack *prev)
return NULL;
/* allocate new track */
nlt= MEM_callocN(sizeof(NlaTrack), "NlaTrack");
nlt = MEM_callocN(sizeof(NlaTrack), "NlaTrack");
/* set settings requiring the track to not be part of the stack yet */
nlt->flag = NLATRACK_SELECTED;
nlt->index= BLI_countlist(&adt->nla_tracks);
nlt->index = BLI_countlist(&adt->nla_tracks);
/* add track to stack, and make it the active one */
if (prev)
@@ -271,7 +271,7 @@ NlaTrack *add_nlatrack (AnimData *adt, NlaTrack *prev)
}
/* Add a NLA Strip referencing the given Action */
NlaStrip *add_nlastrip (bAction *act)
NlaStrip *add_nlastrip(bAction *act)
{
NlaStrip *strip;
@@ -280,7 +280,7 @@ NlaStrip *add_nlastrip (bAction *act)
return NULL;
/* allocate new strip */
strip= MEM_callocN(sizeof(NlaStrip), "NlaStrip");
strip = MEM_callocN(sizeof(NlaStrip), "NlaStrip");
/* generic settings
* - selected flag to highlight this to the user
@@ -290,10 +290,10 @@ NlaStrip *add_nlastrip (bAction *act)
* is not done though, since this should only really happens in editmode for strips now
* though this decision is still subject to further review...
*/
strip->flag = NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_AUTO_BLENDS;
strip->flag = NLASTRIP_FLAG_SELECT | NLASTRIP_FLAG_AUTO_BLENDS;
/* assign the action reference */
strip->act= act;
strip->act = act;
id_us_plus(&act->id);
/* determine initial range
@@ -302,10 +302,10 @@ NlaStrip *add_nlastrip (bAction *act)
calc_action_range(strip->act, &strip->actstart, &strip->actend, 0);
strip->start = strip->actstart;
strip->end = (IS_EQF(strip->actstart, strip->actend)) ? (strip->actstart + 1.0f): (strip->actend);
strip->end = (IS_EQF(strip->actstart, strip->actend)) ? (strip->actstart + 1.0f) : (strip->actend);
/* strip should be referenced as-is */
strip->scale= 1.0f;
strip->scale = 1.0f;
strip->repeat = 1.0f;
/* return the new strip */
@@ -313,7 +313,7 @@ NlaStrip *add_nlastrip (bAction *act)
}
/* Add new NLA-strip to the top of the NLA stack - i.e. into the last track if space, or a new one otherwise */
NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act)
NlaStrip *add_nlastrip_to_stack(AnimData *adt, bAction *act)
{
NlaStrip *strip;
NlaTrack *nlt;
@@ -323,7 +323,7 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act)
return NULL;
/* create a new NLA strip */
strip= add_nlastrip(act);
strip = add_nlastrip(act);
if (strip == NULL)
return NULL;
@@ -332,7 +332,7 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act)
/* trying to add to the last track failed (no track or no space),
* so add a new track to the stack, and add to that...
*/
nlt= add_nlatrack(adt, NULL);
nlt = add_nlatrack(adt, NULL);
BKE_nlatrack_add_strip(nlt, strip);
}
@@ -344,7 +344,7 @@ NlaStrip *add_nlastrip_to_stack (AnimData *adt, bAction *act)
}
/* Add a NLA Strip referencing the given speaker's sound */
NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker)
NlaStrip *add_nla_soundstrip(Scene *scene, Speaker *speaker)
{
NlaStrip *strip = MEM_callocN(sizeof(NlaStrip), "NlaSoundStrip");
@@ -388,7 +388,7 @@ NlaStrip *add_nla_soundstrip (Scene *scene, Speaker *speaker)
/* non clipped mapping for strip-time <-> global time (for Action-Clips)
* invert = convert action-strip time to global time
*/
static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short mode)
static float nlastrip_get_frame_actionclip(NlaStrip *strip, float cframe, short mode)
{
float actlength, scale;
// float repeat; // UNUSED
@@ -398,7 +398,7 @@ static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short
// repeat = strip->repeat; // UNUSED
/* scaling */
if (IS_EQF(strip->scale, 0.0f)) strip->scale= 1.0f;
if (IS_EQF(strip->scale, 0.0f)) strip->scale = 1.0f;
scale = fabsf(strip->scale); /* scale must be positive - we've got a special flag for reversing */
/* length of referenced action */
@@ -409,12 +409,12 @@ static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short
if (strip->flag & NLASTRIP_FLAG_REVERSE) {
// FIXME: this won't work right with Graph Editor?
if (mode == NLATIME_CONVERT_MAP) {
return strip->end - scale*(cframe - strip->actstart);
return strip->end - scale * (cframe - strip->actstart);
}
else if (mode == NLATIME_CONVERT_UNMAP) {
return (strip->end + (strip->actstart * scale - cframe)) / scale;
}
else /* if (mode == NLATIME_CONVERT_EVAL) */{
else { /* if (mode == NLATIME_CONVERT_EVAL) */
if (IS_EQF(cframe, strip->end) && IS_EQF(strip->repeat, ((int)strip->repeat))) {
/* this case prevents the motion snapping back to the first frame at the end of the strip
* by catching the case where repeats is a whole number, which means that the end of the strip
@@ -426,18 +426,18 @@ static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short
/* - the 'fmod(..., actlength*scale)' is needed to get the repeats working
* - the '/ scale' is needed to ensure that scaling influences the timing within the repeat
*/
return strip->actend - fmodf(cframe - strip->start, actlength*scale) / scale;
return strip->actend - fmodf(cframe - strip->start, actlength * scale) / scale;
}
}
}
else {
if (mode == NLATIME_CONVERT_MAP) {
return strip->start + scale*(cframe - strip->actstart);
return strip->start + scale * (cframe - strip->actstart);
}
else if (mode == NLATIME_CONVERT_UNMAP) {
return strip->actstart + (cframe - strip->start) / scale;
}
else /* if (mode == NLATIME_CONVERT_EVAL) */{
else { /* if (mode == NLATIME_CONVERT_EVAL) */
if (IS_EQF(cframe, strip->end) && IS_EQF(strip->repeat, ((int)strip->repeat))) {
/* this case prevents the motion snapping back to the first frame at the end of the strip
* by catching the case where repeats is a whole number, which means that the end of the strip
@@ -449,7 +449,7 @@ static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short
/* - the 'fmod(..., actlength*scale)' is needed to get the repeats working
* - the '/ scale' is needed to ensure that scaling influences the timing within the repeat
*/
return strip->actstart + fmodf(cframe - strip->start, actlength*scale) / scale;
return strip->actstart + fmodf(cframe - strip->start, actlength * scale) / scale;
}
}
}
@@ -458,12 +458,12 @@ static float nlastrip_get_frame_actionclip (NlaStrip *strip, float cframe, short
/* non clipped mapping for strip-time <-> global time (for Transitions)
* invert = convert action-strip time to global time
*/
static float nlastrip_get_frame_transition (NlaStrip *strip, float cframe, short mode)
static float nlastrip_get_frame_transition(NlaStrip *strip, float cframe, short mode)
{
float length;
/* length of strip */
length= strip->end - strip->start;
length = strip->end - strip->start;
/* reversed = play strip backwards */
if (strip->flag & NLASTRIP_FLAG_REVERSE) {
@@ -481,7 +481,7 @@ static float nlastrip_get_frame_transition (NlaStrip *strip, float cframe, short
}
/* non clipped mapping for strip-time <-> global time
* mode = eNlaTime_ConvertModes[] -> NLATIME_CONVERT_*
* mode = eNlaTime_ConvertModes[] -> NLATIME_CONVERT_*
*
* only secure for 'internal' (i.e. within AnimSys evaluation) operations,
* but should not be directly relied on for stuff which interacts with editors
@@ -515,17 +515,17 @@ float BKE_nla_tweakedit_remap(AnimData *adt, float cframe, short mode)
* - when not in tweakmode, the active Action does not have any scaling applied :)
* - when in tweakmode, if the no-mapping flag is set, do not map
*/
if ((adt == NULL) || (adt->flag & ADT_NLA_EDIT_ON)==0 || (adt->flag & ADT_NLA_EDIT_NOMAP))
if ((adt == NULL) || (adt->flag & ADT_NLA_EDIT_ON) == 0 || (adt->flag & ADT_NLA_EDIT_NOMAP))
return cframe;
/* if the active-strip info has been stored already, access this, otherwise look this up
* and store for (very probable) future usage
*/
if (adt->actstrip == NULL) {
NlaTrack *nlt= BKE_nlatrack_find_active(&adt->nla_tracks);
adt->actstrip= BKE_nlastrip_find_active(nlt);
NlaTrack *nlt = BKE_nlatrack_find_active(&adt->nla_tracks);
adt->actstrip = BKE_nlastrip_find_active(nlt);
}
strip= adt->actstrip;
strip = adt->actstrip;
/* sanity checks
* - in rare cases, we may not be able to find this strip for some reason (internal error)
@@ -559,7 +559,7 @@ short BKE_nlastrips_has_space(ListBase *strips, float start, float end)
}
/* loop over NLA strips checking for any overlaps with this area... */
for (strip= strips->first; strip; strip= strip->next) {
for (strip = strips->first; strip; strip = strip->next) {
/* if start frame of strip is past the target end-frame, that means that
* we've gone past the window we need to check for, so things are fine
*/
@@ -592,21 +592,21 @@ void BKE_nlastrips_sort_strips(ListBase *strips)
/* we simply perform insertion sort on this list, since it is assumed that per track,
* there are only likely to be at most 5-10 strips
*/
for (strip= strips->first; strip; strip= stripn) {
for (strip = strips->first; strip; strip = stripn) {
short not_added = 1;
stripn= strip->next;
stripn = strip->next;
/* remove this strip from the list, and add it to the new list, searching from the end of
* the list, assuming that the lists are in order
*/
BLI_remlink(strips, strip);
for (sstrip= tmp.last; sstrip; sstrip= sstrip->prev) {
for (sstrip = tmp.last; sstrip; sstrip = sstrip->prev) {
/* check if add after */
if (sstrip->end <= strip->start) {
BLI_insertlinkafter(&tmp, sstrip, strip);
not_added= 0;
not_added = 0;
break;
}
}
@@ -617,8 +617,8 @@ void BKE_nlastrips_sort_strips(ListBase *strips)
}
/* reassign the start and end points of the strips */
strips->first= tmp.first;
strips->last= tmp.last;
strips->first = tmp.first;
strips->last = tmp.last;
}
/* Add the given NLA-Strip to the given list of strips, assuming that it
@@ -634,15 +634,15 @@ short BKE_nlastrips_add_strip(ListBase *strips, NlaStrip *strip)
return 0;
/* check if any space to add */
if (BKE_nlastrips_has_space(strips, strip->start, strip->end)==0)
if (BKE_nlastrips_has_space(strips, strip->start, strip->end) == 0)
return 0;
/* find the right place to add the strip to the nominated track */
for (ns= strips->first; ns; ns= ns->next) {
for (ns = strips->first; ns; ns = ns->next) {
/* if current strip occurs after the new strip, add it before */
if (ns->start >= strip->end) {
BLI_insertlinkbefore(strips, ns, strip);
not_added= 0;
not_added = 0;
break;
}
}
@@ -672,14 +672,14 @@ void BKE_nlastrips_make_metas(ListBase *strips, short temp)
return;
/* group all continuous chains of selected strips into meta-strips */
for (strip= strips->first; strip; strip= stripn) {
stripn= strip->next;
for (strip = strips->first; strip; strip = stripn) {
stripn = strip->next;
if (strip->flag & NLASTRIP_FLAG_SELECT) {
/* if there is an existing meta-strip, add this strip to it, otherwise, create a new one */
if (mstrip == NULL) {
/* add a new meta-strip, and add it before the current strip that it will replace... */
mstrip= MEM_callocN(sizeof(NlaStrip), "Meta-NlaStrip");
mstrip = MEM_callocN(sizeof(NlaStrip), "Meta-NlaStrip");
mstrip->type = NLASTRIP_TYPE_META;
BLI_insertlinkbefore(strips, strip, mstrip);
@@ -691,10 +691,10 @@ void BKE_nlastrips_make_metas(ListBase *strips, short temp)
mstrip->flag |= NLASTRIP_FLAG_TEMP_META;
/* set default repeat/scale values to prevent warnings */
mstrip->repeat= mstrip->scale= 1.0f;
mstrip->repeat = mstrip->scale = 1.0f;
/* make its start frame be set to the start frame of the current strip */
mstrip->start= strip->start;
mstrip->start = strip->start;
}
/* remove the selected strips from the track, and add to the meta */
@@ -702,13 +702,13 @@ void BKE_nlastrips_make_metas(ListBase *strips, short temp)
BLI_addtail(&mstrip->strips, strip);
/* expand the meta's dimensions to include the newly added strip- i.e. its last frame */
mstrip->end= strip->end;
mstrip->end = strip->end;
}
else {
/* current strip wasn't selected, so the end of 'island' of selected strips has been reached,
* so stop adding strips to the current meta
*/
mstrip= NULL;
mstrip = NULL;
}
}
}
@@ -725,8 +725,8 @@ void BKE_nlastrips_clear_metastrip(ListBase *strips, NlaStrip *strip)
/* move each one of the meta-strip's children before the meta-strip
* in the list of strips after unlinking them from the meta-strip
*/
for (cs= strip->strips.first; cs; cs= csn) {
csn= cs->next;
for (cs = strip->strips.first; cs; cs = csn) {
csn = cs->next;
BLI_remlink(&strip->strips, cs);
BLI_insertlinkbefore(strips, strip, cs);
}
@@ -748,13 +748,13 @@ void BKE_nlastrips_clear_metas(ListBase *strips, short onlySel, short onlyTemp)
return;
/* remove meta-strips fitting the criteria of the arguments */
for (strip= strips->first; strip; strip= stripn) {
stripn= strip->next;
for (strip = strips->first; strip; strip = stripn) {
stripn = strip->next;
/* check if strip is a meta-strip */
if (strip->type == NLASTRIP_TYPE_META) {
/* if check if selection and 'temporary-only' considerations are met */
if ((onlySel==0) || (strip->flag & NLASTRIP_FLAG_SELECT)) {
if ((onlySel == 0) || (strip->flag & NLASTRIP_FLAG_SELECT)) {
if ((!onlyTemp) || (strip->flag & NLASTRIP_FLAG_TEMP_META)) {
BKE_nlastrips_clear_metastrip(strips, strip);
}
@@ -786,7 +786,7 @@ short BKE_nlameta_add_strip(NlaStrip *mstrip, NlaStrip *strip)
if ((mstrip->prev == NULL) || (mstrip->prev->end <= strip->start)) {
/* add strip to start of meta's list, and expand dimensions */
BLI_addhead(&mstrip->strips, strip);
mstrip->start= strip->start;
mstrip->start = strip->start;
return 1;
}
@@ -800,7 +800,7 @@ short BKE_nlameta_add_strip(NlaStrip *mstrip, NlaStrip *strip)
if ((mstrip->next == NULL) || (mstrip->next->start >= strip->end)) {
/* add strip to end of meta's list, and expand dimensions */
BLI_addtail(&mstrip->strips, strip);
mstrip->end= strip->end;
mstrip->end = strip->end;
return 1;
}
@@ -821,7 +821,7 @@ void BKE_nlameta_flush_transforms(NlaStrip *mstrip)
NlaStrip *strip;
float oStart, oEnd, offset;
float oLen, nLen;
short scaleChanged= 0;
short scaleChanged = 0;
/* sanity checks
* - strip must exist
@@ -836,9 +836,9 @@ void BKE_nlameta_flush_transforms(NlaStrip *mstrip)
* - these are simply the start/end frames of the child strips,
* since we assume they weren't transformed yet
*/
oStart= ((NlaStrip *)mstrip->strips.first)->start;
oEnd= ((NlaStrip *)mstrip->strips.last)->end;
offset= mstrip->start - oStart;
oStart = ((NlaStrip *)mstrip->strips.first)->start;
oEnd = ((NlaStrip *)mstrip->strips.last)->end;
offset = mstrip->start - oStart;
/* optimization:
* don't flush if nothing changed yet
@@ -851,20 +851,20 @@ void BKE_nlameta_flush_transforms(NlaStrip *mstrip)
oLen = oEnd - oStart;
nLen = mstrip->end - mstrip->start;
if (IS_EQF(nLen, oLen) == 0)
scaleChanged= 1;
scaleChanged = 1;
/* for each child-strip, calculate new start/end points based on this new info */
for (strip= mstrip->strips.first; strip; strip= strip->next) {
for (strip = mstrip->strips.first; strip; strip = strip->next) {
if (scaleChanged) {
float p1, p2;
/* compute positions of endpoints relative to old extents of strip */
p1= (strip->start - oStart) / oLen;
p2= (strip->end - oStart) / oLen;
p1 = (strip->start - oStart) / oLen;
p2 = (strip->end - oStart) / oLen;
/* apply new strip endpoints using the proportions, then wait for second pass to flush scale properly */
strip->start= (p1 * nLen) + mstrip->start;
strip->end= (p2 * nLen) + mstrip->start;
strip->start = (p1 * nLen) + mstrip->start;
strip->end = (p2 * nLen) + mstrip->start;
}
else {
/* just apply the changes in offset to both ends of the strip */
@@ -874,7 +874,7 @@ void BKE_nlameta_flush_transforms(NlaStrip *mstrip)
}
/* apply a second pass over child strips, to finish up unfinished business */
for (strip= mstrip->strips.first; strip; strip= strip->next) {
for (strip = mstrip->strips.first; strip; strip = strip->next) {
/* only if scale changed, need to perform RNA updates */
if (scaleChanged) {
PointerRNA ptr;
@@ -894,7 +894,7 @@ void BKE_nlameta_flush_transforms(NlaStrip *mstrip)
/* NLA-Tracks ---------------------------------------- */
/* Find the active NLA-track for the given stack */
NlaTrack *BKE_nlatrack_find_active (ListBase *tracks)
NlaTrack *BKE_nlatrack_find_active(ListBase *tracks)
{
NlaTrack *nlt;
@@ -903,7 +903,7 @@ NlaTrack *BKE_nlatrack_find_active (ListBase *tracks)
return NULL;
/* try to find the first active track */
for (nlt= tracks->first; nlt; nlt= nlt->next) {
for (nlt = tracks->first; nlt; nlt = nlt->next) {
if (nlt->flag & NLATRACK_ACTIVE)
return nlt;
}
@@ -924,7 +924,7 @@ void BKE_nlatrack_solo_toggle(AnimData *adt, NlaTrack *nlt)
return;
/* firstly, make sure 'solo' flag for all tracks is disabled */
for (nt= adt->nla_tracks.first; nt; nt= nt->next) {
for (nt = adt->nla_tracks.first; nt; nt = nt->next) {
if (nt != nlt)
nt->flag &= ~NLATRACK_SOLO;
}
@@ -956,7 +956,7 @@ void BKE_nlatrack_set_active(ListBase *tracks, NlaTrack *nlt_a)
return;
/* deactive all the rest */
for (nlt= tracks->first; nlt; nlt= nlt->next)
for (nlt = tracks->first; nlt; nlt = nlt->next)
nlt->flag &= ~NLATRACK_ACTIVE;
/* set the given one as the active one */
@@ -968,9 +968,9 @@ void BKE_nlatrack_set_active(ListBase *tracks, NlaTrack *nlt_a)
short BKE_nlatrack_has_space(NlaTrack *nlt, float start, float end)
{
/* sanity checks
* - track must exist
* - track must be editable
* - bounds cannot be equal (0-length is nasty)
* - track must exist
* - track must be editable
* - bounds cannot be equal (0-length is nasty)
*/
if ((nlt == NULL) || (nlt->flag & NLATRACK_PROTECTED) || IS_EQF(start, end))
return 0;
@@ -1042,7 +1042,7 @@ short BKE_nlatrack_get_bounds(NlaTrack *nlt, float bounds[2])
/* NLA Strips -------------------------------------- */
/* Find the active NLA-strip within the given track */
NlaStrip *BKE_nlastrip_find_active (NlaTrack *nlt)
NlaStrip *BKE_nlastrip_find_active(NlaTrack *nlt)
{
NlaStrip *strip;
@@ -1051,7 +1051,7 @@ NlaStrip *BKE_nlastrip_find_active (NlaTrack *nlt)
return NULL;
/* try to find the first active strip */
for (strip= nlt->strips.first; strip; strip= strip->next) {
for (strip = nlt->strips.first; strip; strip = strip->next) {
if (strip->flag & NLASTRIP_FLAG_ACTIVE)
return strip;
}
@@ -1071,8 +1071,8 @@ void BKE_nlastrip_set_active(AnimData *adt, NlaStrip *strip)
return;
/* loop over tracks, deactivating*/
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (nls= nlt->strips.first; nls; nls= nls->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
for (nls = nlt->strips.first; nls; nls = nls->next) {
if (nls != strip)
nls->flag &= ~NLASTRIP_FLAG_ACTIVE;
else
@@ -1085,8 +1085,8 @@ void BKE_nlastrip_set_active(AnimData *adt, NlaStrip *strip)
/* Does the given NLA-strip fall within the given bounds (times)? */
short BKE_nlastrip_within_bounds(NlaStrip *strip, float min, float max)
{
const float stripLen= (strip) ? strip->end - strip->start : 0.0f;
const float boundsLen= fabsf(max - min);
const float stripLen = (strip) ? strip->end - strip->start : 0.0f;
const float boundsLen = fabsf(max - min);
/* sanity checks */
if ((strip == NULL) || IS_EQF(stripLen, 0.0f) || IS_EQF(boundsLen, 0.0f))
@@ -1128,10 +1128,10 @@ void BKE_nlastrip_recalculate_bounds(NlaStrip *strip)
return;
/* calculate new length factors */
actlen= strip->actend - strip->actstart;
if (IS_EQF(actlen, 0.0f)) actlen= 1.0f;
actlen = strip->actend - strip->actstart;
if (IS_EQF(actlen, 0.0f)) actlen = 1.0f;
mapping= strip->scale * strip->repeat;
mapping = strip->scale * strip->repeat;
/* adjust endpoint of strip in response to this */
if (IS_EQF(mapping, 0.0f) == 0)
@@ -1140,7 +1140,7 @@ void BKE_nlastrip_recalculate_bounds(NlaStrip *strip)
/* Is the given NLA-strip the first one to occur for the given AnimData block */
// TODO: make this an api method if necesary, but need to add prefix first
static short nlastrip_is_first (AnimData *adt, NlaStrip *strip)
static short nlastrip_is_first(AnimData *adt, NlaStrip *strip)
{
NlaTrack *nlt;
NlaStrip *ns;
@@ -1155,9 +1155,9 @@ static short nlastrip_is_first (AnimData *adt, NlaStrip *strip)
/* check other tracks to see if they have a strip that's earlier */
// TODO: or should we check that the strip's track is also the first?
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
/* only check the first strip, assuming that they're all in order */
ns= nlt->strips.first;
ns = nlt->strips.first;
if (ns) {
if (ns->start < strip->start)
return 0;
@@ -1180,7 +1180,7 @@ short BKE_nlatrack_has_animated_strips(NlaTrack *nlt)
return 0;
/* check each strip for F-Curves only (don't care about whether the flags are set) */
for (strip= nlt->strips.first; strip; strip= strip->next) {
for (strip = nlt->strips.first; strip; strip = strip->next) {
if (strip->fcurves.first)
return 1;
}
@@ -1199,7 +1199,7 @@ short BKE_nlatracks_have_animated_strips(ListBase *tracks)
return 0;
/* check each track, stopping on the first hit */
for (nlt= tracks->first; nlt; nlt= nlt->next) {
for (nlt = tracks->first; nlt; nlt = nlt->next) {
if (BKE_nlatrack_has_animated_strips(nlt))
return 1;
}
@@ -1220,19 +1220,19 @@ void BKE_nlastrip_validate_fcurves(NlaStrip *strip)
/* if controlling influence... */
if (strip->flag & NLASTRIP_FLAG_USR_INFLUENCE) {
/* try to get F-Curve */
fcu= list_find_fcurve(&strip->fcurves, "influence", 0);
fcu = list_find_fcurve(&strip->fcurves, "influence", 0);
/* add one if not found */
if (fcu == NULL) {
/* make new F-Curve */
fcu= MEM_callocN(sizeof(FCurve), "NlaStrip FCurve");
fcu = MEM_callocN(sizeof(FCurve), "NlaStrip FCurve");
BLI_addtail(&strip->fcurves, fcu);
/* set default flags */
fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED);
fcu->flag = (FCURVE_VISIBLE | FCURVE_SELECTED);
/* store path - make copy, and store that */
fcu->rna_path= BLI_strdupn("influence", 9);
fcu->rna_path = BLI_strdupn("influence", 9);
// TODO: insert a few keyframes to ensure default behavior?
}
@@ -1241,19 +1241,19 @@ void BKE_nlastrip_validate_fcurves(NlaStrip *strip)
/* if controlling time... */
if (strip->flag & NLASTRIP_FLAG_USR_TIME) {
/* try to get F-Curve */
fcu= list_find_fcurve(&strip->fcurves, "strip_time", 0);
fcu = list_find_fcurve(&strip->fcurves, "strip_time", 0);
/* add one if not found */
if (fcu == NULL) {
/* make new F-Curve */
fcu= MEM_callocN(sizeof(FCurve), "NlaStrip FCurve");
fcu = MEM_callocN(sizeof(FCurve), "NlaStrip FCurve");
BLI_addtail(&strip->fcurves, fcu);
/* set default flags */
fcu->flag = (FCURVE_VISIBLE|FCURVE_SELECTED);
fcu->flag = (FCURVE_VISIBLE | FCURVE_SELECTED);
/* store path - make copy, and store that */
fcu->rna_path= BLI_strdupn("strip_time", 10);
fcu->rna_path = BLI_strdupn("strip_time", 10);
// TODO: insert a few keyframes to ensure default behavior?
}
@@ -1283,10 +1283,10 @@ void BKE_nlastrip_validate_name(AnimData *adt, NlaStrip *strip)
return;
/* give strip a default name if none already */
if (strip->name[0]==0) {
if (strip->name[0] == 0) {
switch (strip->type) {
case NLASTRIP_TYPE_CLIP: /* act-clip */
BLI_strncpy(strip->name, (strip->act)?(strip->act->id.name+2):("<No Action>"), sizeof(strip->name));
BLI_strncpy(strip->name, (strip->act) ? (strip->act->id.name + 2) : ("<No Action>"), sizeof(strip->name));
break;
case NLASTRIP_TYPE_TRANSITION: /* transition */
BLI_strncpy(strip->name, "Transition", sizeof(strip->name));
@@ -1304,10 +1304,10 @@ void BKE_nlastrip_validate_name(AnimData *adt, NlaStrip *strip)
* - this is easier than iterating over all the tracks+strips hierarchy everytime
* (and probably faster)
*/
gh= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "nlastrip_validate_name gh");
gh = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "nlastrip_validate_name gh");
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (tstrip= nlt->strips.first; tstrip; tstrip= tstrip->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
for (tstrip = nlt->strips.first; tstrip; tstrip = tstrip->next) {
/* don't add the strip of interest */
if (tstrip == strip)
continue;
@@ -1333,7 +1333,7 @@ void BKE_nlastrip_validate_name(AnimData *adt, NlaStrip *strip)
* - track: nla-track that the overlapping strips should be found from
* - start, end: frames for the offending endpoints
*/
static void nlastrip_get_endpoint_overlaps (NlaStrip *strip, NlaTrack *track, float **start, float **end)
static void nlastrip_get_endpoint_overlaps(NlaStrip *strip, NlaTrack *track, float **start, float **end)
{
NlaStrip *nls;
@@ -1341,46 +1341,46 @@ static void nlastrip_get_endpoint_overlaps (NlaStrip *strip, NlaTrack *track, fl
* but which don't cover the entire length
*/
// TODO: this scheme could get quite slow for doing this on many strips...
for (nls= track->strips.first; nls; nls= nls->next) {
for (nls = track->strips.first; nls; nls = nls->next) {
/* check if strip overlaps (extends over or exactly on) the entire range of the strip we're validating */
if ((nls->start <= strip->start) && (nls->end >= strip->end)) {
*start= NULL;
*end= NULL;
*start = NULL;
*end = NULL;
return;
}
/* check if strip doesn't even occur anywhere near... */
if (nls->end < strip->start)
continue; /* skip checking this strip... not worthy of mention */
continue; /* skip checking this strip... not worthy of mention */
if (nls->start > strip->end)
return; /* the range we're after has already passed */
return; /* the range we're after has already passed */
/* if this strip is not part of an island of continuous strips, it can be used
* - this check needs to be done for each end of the strip we try and use...
*/
if ((nls->next == NULL) || IS_EQF(nls->next->start, nls->end)==0) {
if ((nls->next == NULL) || IS_EQF(nls->next->start, nls->end) == 0) {
if ((nls->end > strip->start) && (nls->end < strip->end))
*start= &nls->end;
*start = &nls->end;
}
if ((nls->prev == NULL) || IS_EQF(nls->prev->end, nls->start)==0) {
if ((nls->prev == NULL) || IS_EQF(nls->prev->end, nls->start) == 0) {
if ((nls->start < strip->end) && (nls->start > strip->start))
*end= &nls->start;
*end = &nls->start;
}
}
}
/* Determine auto-blending for the given strip */
static void BKE_nlastrip_validate_autoblends (NlaTrack *nlt, NlaStrip *nls)
static void BKE_nlastrip_validate_autoblends(NlaTrack *nlt, NlaStrip *nls)
{
float *ps=NULL, *pe=NULL;
float *ns=NULL, *ne=NULL;
float *ps = NULL, *pe = NULL;
float *ns = NULL, *ne = NULL;
/* sanity checks */
if (ELEM(NULL, nls, nlt))
return;
if ((nlt->prev == NULL) && (nlt->next == NULL))
return;
if ((nls->flag & NLASTRIP_FLAG_AUTO_BLENDS)==0)
if ((nls->flag & NLASTRIP_FLAG_AUTO_BLENDS) == 0)
return;
/* get test ranges */
@@ -1394,31 +1394,31 @@ static void BKE_nlastrip_validate_autoblends (NlaTrack *nlt, NlaStrip *nls)
* is directly followed/preceeded by another strip, forming an
* 'island' of continuous strips
*/
if ((ps || ns) && ((nls->prev == NULL) || IS_EQF(nls->prev->end, nls->start)==0)) {
if ((ps || ns) && ((nls->prev == NULL) || IS_EQF(nls->prev->end, nls->start) == 0)) {
/* start overlaps - pick the largest overlap */
if ( ((ps && ns) && (*ps > *ns)) || (ps) )
nls->blendin= *ps - nls->start;
nls->blendin = *ps - nls->start;
else
nls->blendin= *ns - nls->start;
nls->blendin = *ns - nls->start;
}
else /* no overlap allowed/needed */
nls->blendin= 0.0f;
nls->blendin = 0.0f;
if ((pe || ne) && ((nls->next == NULL) || IS_EQF(nls->next->start, nls->end)==0)) {
if ((pe || ne) && ((nls->next == NULL) || IS_EQF(nls->next->start, nls->end) == 0)) {
/* end overlaps - pick the largest overlap */
if ( ((pe && ne) && (*pe > *ne)) || (pe) )
nls->blendout= nls->end - *pe;
nls->blendout = nls->end - *pe;
else
nls->blendout= nls->end - *ne;
nls->blendout = nls->end - *ne;
}
else /* no overlap allowed/needed */
nls->blendout= 0.0f;
nls->blendout = 0.0f;
}
/* Ensure that auto-blending and other settings are set correctly */
void BKE_nla_validate_state(AnimData *adt)
{
NlaStrip *strip, *fstrip=NULL;
NlaStrip *strip, *fstrip = NULL;
NlaTrack *nlt;
/* sanity checks */
@@ -1426,20 +1426,20 @@ void BKE_nla_validate_state(AnimData *adt)
return;
/* adjust blending values for auto-blending, and also do an initial pass to find the earliest strip */
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (strip= nlt->strips.first; strip; strip= strip->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
for (strip = nlt->strips.first; strip; strip = strip->next) {
/* auto-blending first */
BKE_nlastrip_validate_autoblends(nlt, strip);
/* extend mode - find first strip */
if ((fstrip == NULL) || (strip->start < fstrip->start))
fstrip= strip;
fstrip = strip;
}
}
/* second pass over the strips to adjust the extend-mode to fix any problems */
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (strip= nlt->strips.first; strip; strip= strip->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
for (strip = nlt->strips.first; strip; strip = strip->next) {
/* apart from 'nothing' option which user has to explicitly choose, we don't really know if
* we should be overwriting the extend setting (but assume that's what the user wanted)
*/
@@ -1454,9 +1454,9 @@ void BKE_nla_validate_state(AnimData *adt)
* Should fix problems such as [#29869]
*/
if (strip == fstrip)
strip->extendmode= NLASTRIP_EXTEND_HOLD;
strip->extendmode = NLASTRIP_EXTEND_HOLD;
else if (strip->blendmode == NLASTRIP_MODE_REPLACE)
strip->extendmode= NLASTRIP_EXTEND_HOLD_FORWARD;
strip->extendmode = NLASTRIP_EXTEND_HOLD_FORWARD;
}
}
}
@@ -1489,13 +1489,13 @@ void BKE_nla_action_pushdown(AnimData *adt)
}
/* add a new NLA strip to the track, which references the active action */
strip= add_nlastrip_to_stack(adt, adt->action);
strip = add_nlastrip_to_stack(adt, adt->action);
/* do other necessary work on strip */
if (strip) {
/* clear reference to action now that we've pushed it onto the stack */
id_us_min(&adt->action->id);
adt->action= NULL;
adt->action = NULL;
/* if the strip is the first one in the track it lives in, check if there
* are strips in any other tracks that may be before this, and set the extend
@@ -1506,7 +1506,7 @@ void BKE_nla_action_pushdown(AnimData *adt)
* so that it doesn't override strips in previous tracks
*/
// FIXME: this needs to be more automated, since user can rearrange strips
strip->extendmode= NLASTRIP_EXTEND_HOLD_FORWARD;
strip->extendmode = NLASTRIP_EXTEND_HOLD_FORWARD;
}
/* make strip the active one... */
@@ -1520,8 +1520,8 @@ void BKE_nla_action_pushdown(AnimData *adt)
*/
short BKE_nla_tweakmode_enter(AnimData *adt)
{
NlaTrack *nlt, *activeTrack=NULL;
NlaStrip *strip, *activeStrip=NULL;
NlaTrack *nlt, *activeTrack = NULL;
NlaStrip *strip, *activeStrip = NULL;
/* verify that data is valid */
if (ELEM(NULL, adt, adt->nla_tracks.first))
@@ -1534,16 +1534,16 @@ short BKE_nla_tweakmode_enter(AnimData *adt)
return 1;
/* go over the tracks, finding the active one, and its active strip
* - if we cannot find both, then there's nothing to do
* - if we cannot find both, then there's nothing to do
*/
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
/* check if active */
if (nlt->flag & NLATRACK_ACTIVE) {
/* store reference to this active track */
activeTrack= nlt;
activeTrack = nlt;
/* now try to find active strip */
activeStrip= BKE_nlastrip_find_active(nlt);
activeStrip = BKE_nlastrip_find_active(nlt);
break;
}
}
@@ -1557,18 +1557,18 @@ short BKE_nla_tweakmode_enter(AnimData *adt)
for (nlt = adt->nla_tracks.last; nlt; nlt = nlt->prev) {
if (nlt->flag & NLATRACK_SELECTED) {
/* assume this is the active track */
activeTrack= nlt;
activeTrack = nlt;
/* try to find active strip */
activeStrip= BKE_nlastrip_find_active(nlt);
activeStrip = BKE_nlastrip_find_active(nlt);
break;
}
}
}
if ((activeTrack) && (activeStrip == NULL)) {
/* no active strip in active or last selected track; compromise for first selected (assuming only single)... */
for (strip = activeTrack->strips.first; strip; strip= strip->next) {
if (strip->flag & (NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_ACTIVE)) {
for (strip = activeTrack->strips.first; strip; strip = strip->next) {
if (strip->flag & (NLASTRIP_FLAG_SELECT | NLASTRIP_FLAG_ACTIVE)) {
activeStrip = strip;
break;
}
@@ -1586,8 +1586,8 @@ short BKE_nla_tweakmode_enter(AnimData *adt)
/* go over all the tracks up to the active one, tagging each strip that uses the same
* action as the active strip, but leaving everything else alone
*/
for (nlt= activeTrack->prev; nlt; nlt= nlt->prev) {
for (strip= nlt->strips.first; strip; strip= strip->next) {
for (nlt = activeTrack->prev; nlt; nlt = nlt->prev) {
for (strip = nlt->strips.first; strip; strip = strip->next) {
if (strip->act == activeStrip->act)
strip->flag |= NLASTRIP_FLAG_TWEAKUSER;
else
@@ -1599,7 +1599,7 @@ short BKE_nla_tweakmode_enter(AnimData *adt)
/* go over all the tracks after AND INCLUDING the active one, tagging them as being disabled
* - the active track needs to also be tagged, otherwise, it'll overlap with the tweaks going on
*/
for (nlt= activeTrack; nlt; nlt= nlt->next)
for (nlt = activeTrack; nlt; nlt = nlt->next)
nlt->flag |= NLATRACK_DISABLED;
/* handle AnimData level changes:
@@ -1608,9 +1608,9 @@ short BKE_nla_tweakmode_enter(AnimData *adt)
* - editing-flag for this AnimData block should also get turned on (for more efficient restoring)
* - take note of the active strip for mapping-correction of keyframes in the action being edited
*/
adt->tmpact= adt->action;
adt->action= activeStrip->act;
adt->actstrip= activeStrip;
adt->tmpact = adt->action;
adt->action = activeStrip->act;
adt->actstrip = activeStrip;
id_us_plus(&activeStrip->act->id);
adt->flag |= ADT_NLA_EDIT_ON;
@@ -1637,10 +1637,10 @@ void BKE_nla_tweakmode_exit(AnimData *adt)
/* for all Tracks, clear the 'disabled' flag
* for all Strips, clear the 'tweak-user' flag
*/
for (nlt= adt->nla_tracks.first; nlt; nlt= nlt->next) {
for (nlt = adt->nla_tracks.first; nlt; nlt = nlt->next) {
nlt->flag &= ~NLATRACK_DISABLED;
for (strip= nlt->strips.first; strip; strip= strip->next)
for (strip = nlt->strips.first; strip; strip = strip->next)
strip->flag &= ~NLASTRIP_FLAG_TWEAKUSER;
}
@@ -1652,15 +1652,15 @@ void BKE_nla_tweakmode_exit(AnimData *adt)
* - clear pointer to active strip
*/
if (adt->action) adt->action->id.us--;
adt->action= adt->tmpact;
adt->tmpact= NULL;
adt->actstrip= NULL;
adt->action = adt->tmpact;
adt->tmpact = NULL;
adt->actstrip = NULL;
adt->flag &= ~ADT_NLA_EDIT_ON;
}
/* Baking Tools ------------------------------------------- */
static void UNUSED_FUNCTION(BKE_nla_bake) (Scene *scene, ID *UNUSED(id), AnimData *adt, int UNUSED(flag))
static void UNUSED_FUNCTION(BKE_nla_bake) (Scene * scene, ID *UNUSED(id), AnimData * adt, int UNUSED(flag))
{
/* verify that data is valid

View File

@@ -63,9 +63,9 @@ void BKE_reports_init(ReportList *reports, int flag)
memset(reports, 0, sizeof(ReportList));
reports->storelevel= RPT_INFO;
reports->printlevel= RPT_ERROR;
reports->flag= flag;
reports->storelevel = RPT_INFO;
reports->printlevel = RPT_ERROR;
reports->flag = flag;
}
void BKE_reports_clear(ReportList *reports)
@@ -75,16 +75,16 @@ void BKE_reports_clear(ReportList *reports)
if (!reports)
return;
report= reports->list.first;
report = reports->list.first;
while (report) {
report_next= report->next;
report_next = report->next;
MEM_freeN((void *)report->message);
MEM_freeN(report);
report= report_next;
report = report_next;
}
reports->list.first= reports->list.last= NULL;
reports->list.first = reports->list.last = NULL;
}
void BKE_report(ReportList *reports, ReportType type, const char *message)
@@ -101,15 +101,15 @@ void BKE_report(ReportList *reports, ReportType type, const char *message)
if (reports && (reports->flag & RPT_STORE) && (type >= reports->storelevel)) {
char *message_alloc;
report= MEM_callocN(sizeof(Report), "Report");
report->type= type;
report->typestr= report_type_str(type);
report = MEM_callocN(sizeof(Report), "Report");
report->type = type;
report->typestr = report_type_str(type);
len= strlen(message);
message_alloc= MEM_callocN(sizeof(char)*(len+1), "ReportMessage");
memcpy(message_alloc, message, sizeof(char)*(len+1));
report->message= message_alloc;
report->len= len;
len = strlen(message);
message_alloc = MEM_callocN(sizeof(char) * (len + 1), "ReportMessage");
memcpy(message_alloc, message, sizeof(char) * (len + 1));
report->message = message_alloc;
report->len = len;
BLI_addtail(&reports->list, report);
}
}
@@ -129,19 +129,19 @@ void BKE_reportf(ReportList *reports, ReportType type, const char *format, ...)
}
if (reports && (reports->flag & RPT_STORE) && (type >= reports->storelevel)) {
report= MEM_callocN(sizeof(Report), "Report");
report = MEM_callocN(sizeof(Report), "Report");
ds= BLI_dynstr_new();
ds = BLI_dynstr_new();
va_start(args, format);
BLI_dynstr_vappendf(ds, format, args);
va_end(args);
report->message= BLI_dynstr_get_cstring(ds);
report->len= BLI_dynstr_get_len(ds);
report->message = BLI_dynstr_get_cstring(ds);
report->len = BLI_dynstr_get_len(ds);
BLI_dynstr_free(ds);
report->type= type;
report->typestr= report_type_str(type);
report->type = type;
report->typestr = report_type_str(type);
BLI_addtail(&reports->list, report);
}
@@ -155,15 +155,15 @@ void BKE_reports_prepend(ReportList *reports, const char *prepend)
if (!reports)
return;
for (report=reports->list.first; report; report=report->next) {
ds= BLI_dynstr_new();
for (report = reports->list.first; report; report = report->next) {
ds = BLI_dynstr_new();
BLI_dynstr_append(ds, prepend);
BLI_dynstr_append(ds, report->message);
MEM_freeN((void *)report->message);
report->message= BLI_dynstr_get_cstring(ds);
report->len= BLI_dynstr_get_len(ds);
report->message = BLI_dynstr_get_cstring(ds);
report->len = BLI_dynstr_get_len(ds);
BLI_dynstr_free(ds);
}
@@ -178,8 +178,8 @@ void BKE_reports_prependf(ReportList *reports, const char *prepend, ...)
if (!reports)
return;
for (report=reports->list.first; report; report=report->next) {
ds= BLI_dynstr_new();
for (report = reports->list.first; report; report = report->next) {
ds = BLI_dynstr_new();
va_start(args, prepend);
BLI_dynstr_vappendf(ds, prepend, args);
va_end(args);
@@ -187,8 +187,8 @@ void BKE_reports_prependf(ReportList *reports, const char *prepend, ...)
BLI_dynstr_append(ds, report->message);
MEM_freeN((void *)report->message);
report->message= BLI_dynstr_get_cstring(ds);
report->len= BLI_dynstr_get_len(ds);
report->message = BLI_dynstr_get_cstring(ds);
report->len = BLI_dynstr_get_len(ds);
BLI_dynstr_free(ds);
}
@@ -207,7 +207,7 @@ void BKE_report_print_level_set(ReportList *reports, ReportType level)
if (!reports)
return;
reports->printlevel= level;
reports->printlevel = level;
}
ReportType BKE_report_store_level(ReportList *reports)
@@ -223,7 +223,7 @@ void BKE_report_store_level_set(ReportList *reports, ReportType level)
if (!reports)
return;
reports->storelevel= level;
reports->storelevel = level;
}
char *BKE_reports_string(ReportList *reports, ReportType level)
@@ -235,15 +235,15 @@ char *BKE_reports_string(ReportList *reports, ReportType level)
if (!reports || !reports->list.first)
return NULL;
ds= BLI_dynstr_new();
for (report=reports->list.first; report; report=report->next)
ds = BLI_dynstr_new();
for (report = reports->list.first; report; report = report->next)
if (report->type >= level)
BLI_dynstr_appendf(ds, "%s: %s\n", report->typestr, report->message);
if (BLI_dynstr_get_len(ds))
cstring= BLI_dynstr_get_cstring(ds);
cstring = BLI_dynstr_get_cstring(ds);
else
cstring= NULL;
cstring = NULL;
BLI_dynstr_free(ds);
return cstring;
@@ -265,7 +265,7 @@ Report *BKE_reports_last_displayable(ReportList *reports)
{
Report *report;
for (report= reports->list.last; report; report=report->prev) {
for (report = reports->list.last; report; report = report->prev) {
if (ELEM3(report->type, RPT_ERROR, RPT_WARNING, RPT_INFO))
return report;
}
@@ -277,7 +277,7 @@ int BKE_reports_contain(ReportList *reports, ReportType level)
{
Report *report;
if (reports != NULL) {
for (report=reports->list.first; report; report=report->next)
for (report = reports->list.first; report; report = report->next)
if (report->type >= level)
return TRUE;
}

View File

@@ -55,7 +55,7 @@ void freeSketch(SK_Sketch *sketch)
MEM_freeN(sketch);
}
SK_Sketch* createSketch(void)
SK_Sketch *createSketch(void)
{
SK_Sketch *sketch;
@@ -101,7 +101,7 @@ void sk_freeStroke(SK_Stroke *stk)
MEM_freeN(stk);
}
SK_Stroke* sk_createStroke(void)
SK_Stroke *sk_createStroke(void)
{
SK_Stroke *stk;
@@ -261,13 +261,13 @@ void sk_polygonizeStroke(SK_Stroke *stk, int start, int end)
int i;
/* find first exact points outside of range */
for (;start > 0; start--) {
for (; start > 0; start--) {
if (stk->points[start].type == PT_EXACT) {
break;
}
}
for (;end < stk->nb_points - 1; end++) {
for (; end < stk->nb_points - 1; end++) {
if (stk->points[end].type == PT_EXACT) {
break;
}
@@ -382,7 +382,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end)
work = 0;
ls = start;
le = start+1;
le = start + 1;
/* while not over interval */
while (ls < end) {
@@ -400,7 +400,7 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end)
v1[0] = old_points[ls].p2d[1] - old_points[le].p2d[1];
for ( i = ls + 1; i < le; i++ ) {
for (i = ls + 1; i < le; i++) {
float mul;
float dist;
short v2[2];
@@ -412,9 +412,9 @@ void sk_filterStroke(SK_Stroke *stk, int start, int end)
continue;
}
mul = (float)(v1[0]*v2[0] + v1[1]*v2[1]) / (float)(v2[0]*v2[0] + v2[1]*v2[1]);
mul = (float)(v1[0] * v2[0] + v1[1] * v2[1]) / (float)(v2[0] * v2[0] + v2[1] * v2[1]);
dist = mul * mul * (v2[0]*v2[0] + v2[1]*v2[1]);
dist = mul * mul * (v2[0] * v2[0] + v2[1] * v2[1]);
if (dist > max_dist) {
max_dist = dist;
@@ -457,7 +457,7 @@ void sk_filterLastContinuousStroke(SK_Stroke *stk)
{
int start, end;
end = stk->nb_points -1;
end = stk->nb_points - 1;
for (start = end - 1; start > 0 && stk->points[start].type == PT_CONTINUOUS; start--) {
/* nothing to do here*/

View File

@@ -50,8 +50,8 @@ static char *documentation = NULL;
static int txttl_cmp(const char *first, const char *second, int len)
{
int cmp, i;
for (cmp=0, i=0; i<len; i++) {
if ( (cmp= toupper(first[i])-toupper(second[i])) ) {
for (cmp = 0, i = 0; i < len; i++) {
if ( (cmp = toupper(first[i]) - toupper(second[i])) ) {
break;
}
}
@@ -61,7 +61,7 @@ static int txttl_cmp(const char *first, const char *second, int len)
static void txttl_free_suggest(void)
{
SuggItem *item, *prev;
for (item = suggestions.last; item; item=prev) {
for (item = suggestions.last; item; item = prev) {
prev = item->prev;
MEM_freeN(item);
}
@@ -104,7 +104,7 @@ void texttool_text_clear(void)
short texttool_text_is_active(Text *text)
{
return activeToolText==text ? 1 : 0;
return activeToolText == text ? 1 : 0;
}
/***************************/
@@ -135,7 +135,7 @@ void texttool_suggest_add(const char *name, char type)
}
else {
cmp = -1;
for (item=suggestions.last; item; item=item->prev) {
for (item = suggestions.last; item; item = item->prev) {
cmp = txttl_cmp(name, item->name, len);
/* Newitem comes after this item, insert here */
@@ -160,7 +160,7 @@ void texttool_suggest_add(const char *name, char type)
}
}
suggestions.firstmatch = suggestions.lastmatch = suggestions.selected = NULL;
suggestions.top= 0;
suggestions.top = 0;
}
void texttool_suggest_prefix(const char *prefix)
@@ -169,22 +169,22 @@ void texttool_suggest_prefix(const char *prefix)
int cmp, len = strlen(prefix), top = 0;
if (!suggestions.first) return;
if (len==0) {
if (len == 0) {
suggestions.selected = suggestions.firstmatch = suggestions.first;
suggestions.lastmatch = suggestions.last;
return;
}
first = last = NULL;
for (match=suggestions.first; match; match=match->next) {
for (match = suggestions.first; match; match = match->next) {
cmp = txttl_cmp(prefix, match->name, len);
if (cmp==0) {
if (cmp == 0) {
if (!first) {
first = match;
suggestions.top = top;
}
}
else if (cmp<0) {
else if (cmp < 0) {
if (!last) {
last = match->prev;
break;
@@ -254,13 +254,13 @@ void texttool_docs_show(const char *docs)
}
/* Ensure documentation ends with a '\n' */
if (docs[len-1] != '\n') {
documentation = MEM_mallocN(len+2, "Documentation");
if (docs[len - 1] != '\n') {
documentation = MEM_mallocN(len + 2, "Documentation");
strncpy(documentation, docs, len);
documentation[len++] = '\n';
}
else {
documentation = MEM_mallocN(len+1, "Documentation");
documentation = MEM_mallocN(len + 1, "Documentation");
strncpy(documentation, docs, len);
}
documentation[len] = '\0';

View File

@@ -73,9 +73,9 @@ bMovieHandle *BKE_movie_handle_get(const char imtype)
static bMovieHandle mh;
/* set the default handle, as builtin */
mh.start_movie= start_avi;
mh.append_movie= append_avi;
mh.end_movie= end_avi;
mh.start_movie = start_avi;
mh.append_movie = append_avi;
mh.end_movie = end_avi;
mh.get_next_frame = NULL;
mh.get_movie_path = filepath_avi;
@@ -89,9 +89,9 @@ bMovieHandle *BKE_movie_handle_get(const char imtype)
#endif
#ifdef WITH_QUICKTIME
if (imtype == R_IMF_IMTYPE_QUICKTIME) {
mh.start_movie= start_qt;
mh.append_movie= append_qt;
mh.end_movie= end_qt;
mh.start_movie = start_qt;
mh.append_movie = append_qt;
mh.end_movie = end_qt;
mh.get_movie_path = filepath_qt;
}
#endif
@@ -121,11 +121,11 @@ bMovieHandle *BKE_movie_handle_get(const char imtype)
/* ****************************************************************** */
static AviMovie *avi=NULL;
static AviMovie *avi = NULL;
static void filepath_avi (char *string, RenderData *rd)
static void filepath_avi(char *string, RenderData *rd)
{
if (string==NULL) return;
if (string == NULL) return;
strcpy(string, rd->pic);
BLI_path_abs(string, G.main->name);
@@ -153,30 +153,30 @@ static int start_avi(Scene *scene, RenderData *rd, int rectx, int recty, ReportL
x = rectx;
y = recty;
quality= rd->im_format.quality;
framerate= (double) rd->frs_sec / (double) rd->frs_sec_base;
quality = rd->im_format.quality;
framerate = (double) rd->frs_sec / (double) rd->frs_sec_base;
avi = MEM_mallocN (sizeof(AviMovie), "avimovie");
avi = MEM_mallocN(sizeof(AviMovie), "avimovie");
if (rd->im_format.imtype != R_IMF_IMTYPE_AVIJPEG ) format = AVI_FORMAT_AVI_RGB;
if (rd->im_format.imtype != R_IMF_IMTYPE_AVIJPEG) format = AVI_FORMAT_AVI_RGB;
else format = AVI_FORMAT_MJPEG;
if (AVI_open_compress (name, avi, 1, format) != AVI_ERROR_NONE) {
if (AVI_open_compress(name, avi, 1, format) != AVI_ERROR_NONE) {
BKE_report(reports, RPT_ERROR, "Cannot open or start AVI movie file.");
MEM_freeN (avi);
MEM_freeN(avi);
avi = NULL;
return 0;
}
AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_WIDTH, &x);
AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_HEIGHT, &y);
AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_QUALITY, &quality);
AVI_set_compress_option (avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_FRAMERATE, &framerate);
AVI_set_compress_option(avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_WIDTH, &x);
AVI_set_compress_option(avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_HEIGHT, &y);
AVI_set_compress_option(avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_QUALITY, &quality);
AVI_set_compress_option(avi, AVI_OPTION_TYPE_MAIN, 0, AVI_OPTION_FRAMERATE, &framerate);
avi->interlace= 0;
avi->odd_fields= 0;
/* avi->interlace= rd->mode & R_FIELDS; */
/* avi->odd_fields= (rd->mode & R_ODDFIELD)?1:0; */
avi->interlace = 0;
avi->odd_fields = 0;
/* avi->interlace= rd->mode & R_FIELDS; */
/* avi->odd_fields= (rd->mode & R_ODDFIELD)?1:0; */
printf("Created avi: %s\n", name);
return 1;
@@ -193,26 +193,26 @@ static int append_avi(RenderData *UNUSED(rd), int start_frame, int frame, int *p
return 0;
/* note that libavi free's the buffer... stupid interface - zr */
rectot= MEM_mallocN(rectx*recty*sizeof(int), "rectot");
rt1= rectot;
rt2= (unsigned int*)pixels + (recty-1)*rectx;
rectot = MEM_mallocN(rectx * recty * sizeof(int), "rectot");
rt1 = rectot;
rt2 = (unsigned int *)pixels + (recty - 1) * rectx;
/* flip y and convert to abgr */
for (y=0; y < recty; y++, rt1+= rectx, rt2-= rectx) {
memcpy (rt1, rt2, rectx*sizeof(int));
for (y = 0; y < recty; y++, rt1 += rectx, rt2 -= rectx) {
memcpy(rt1, rt2, rectx * sizeof(int));
cp= (char *)rt1;
for (x= rectx; x>0; x--) {
rt= cp[0];
cp[0]= cp[3];
cp[3]= rt;
rt= cp[1];
cp[1]= cp[2];
cp[2]= rt;
cp+= 4;
cp = (char *)rt1;
for (x = rectx; x > 0; x--) {
rt = cp[0];
cp[0] = cp[3];
cp[3] = rt;
rt = cp[1];
cp[1] = cp[2];
cp[2] = rt;
cp += 4;
}
}
AVI_write_frame (avi, (frame-start_frame), AVI_FORMAT_RGB32, rectot, rectx*recty*4);
AVI_write_frame(avi, (frame - start_frame), AVI_FORMAT_RGB32, rectot, rectx * recty * 4);
// printf ("added frame %3d (frame %3d in avi): ", frame, frame-start_frame);
return 1;
@@ -222,17 +222,17 @@ static void end_avi(void)
{
if (avi == NULL) return;
AVI_close_compress (avi);
MEM_freeN (avi);
avi= NULL;
AVI_close_compress(avi);
MEM_freeN(avi);
avi = NULL;
}
/* similar to BKE_makepicstring() */
void BKE_movie_filepath_get(char *string, RenderData *rd)
{
bMovieHandle *mh= BKE_movie_handle_get(rd->im_format.imtype);
bMovieHandle *mh = BKE_movie_handle_get(rd->im_format.imtype);
if (mh->get_movie_path)
mh->get_movie_path(string, rd);
else
string[0]= '\0';
string[0] = '\0';
}

File diff suppressed because it is too large Load Diff

View File

@@ -79,52 +79,52 @@
#include <sys/stat.h> /* file permissions */
#endif /* __APPLE__ */
#define kMyCreatorType FOUR_CHAR_CODE('TVOD')
#define kTrackStart 0
#define kMediaStart 0
#define kMyCreatorType FOUR_CHAR_CODE('TVOD')
#define kTrackStart 0
#define kMediaStart 0
static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty, struct ReportList *reports);
static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
static void QT_EndAddVideoSamplesToMedia (void);
static void QT_CreateMyVideoTrack (int rectx, int recty, struct ReportList *reports);
static void QT_EndCreateMyVideoTrack (struct ReportList *reports);
static void QT_StartAddVideoSamplesToMedia(const Rect *trackFrame, int rectx, int recty, struct ReportList *reports);
static void QT_DoAddVideoSamplesToMedia(int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
static void QT_EndAddVideoSamplesToMedia(void);
static void QT_CreateMyVideoTrack(int rectx, int recty, struct ReportList *reports);
static void QT_EndCreateMyVideoTrack(struct ReportList *reports);
static void check_renderbutton_framerate(struct RenderData *rd, struct ReportList *reports);
static int get_qtcodec_settings(struct RenderData *rd, struct ReportList *reports);
typedef struct QuicktimeExport {
FSSpec theSpec;
short resRefNum;
Str255 qtfilename;
FSSpec theSpec;
short resRefNum;
Str255 qtfilename;
Media theMedia;
Movie theMovie;
Track theTrack;
Media theMedia;
Movie theMovie;
Track theTrack;
GWorldPtr theGWorld;
PixMapHandle thePixMap;
ImageDescription **anImageDescription;
GWorldPtr theGWorld;
PixMapHandle thePixMap;
ImageDescription **anImageDescription;
ImBuf *ibuf; //imagedata for Quicktime's Gworld
ImBuf *ibuf2; //copy of renderdata, to be Y-flipped
ImBuf *ibuf; //imagedata for Quicktime's Gworld
ImBuf *ibuf2; //copy of renderdata, to be Y-flipped
} QuicktimeExport;
typedef struct QuicktimeComponentData {
ComponentInstance theComponent;
ComponentInstance theComponent;
SCTemporalSettings gTemporalSettings;
SCSpatialSettings gSpatialSettings;
SCDataRateSettings aDataRateSetting;
TimeValue duration;
long kVideoTimeScale;
TimeValue duration;
long kVideoTimeScale;
} QuicktimeComponentData;
static struct QuicktimeExport *qtexport;
static struct QuicktimeComponentData *qtdata;
static int sframe;
static int sframe;
/* RNA functions */
@@ -141,7 +141,8 @@ static QuicktimeCodecTypeDesc qtVideoCodecList[] = {
{kMPEG4VisualCodecType, 10, "MPEG4"},
{kH263CodecType, 11, "H.263"},
{kH264CodecType, 12, "H.264"},
{0, 0, NULL}};
{0, 0, NULL}
};
static int qtVideoCodecCount = 12;
@@ -150,9 +151,9 @@ int quicktime_get_num_videocodecs()
return qtVideoCodecCount;
}
QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue)
QuicktimeCodecTypeDesc *quicktime_get_videocodecType_desc(int indexValue)
{
if ((indexValue>=0) && (indexValue < qtVideoCodecCount))
if ((indexValue >= 0) && (indexValue < qtVideoCodecCount))
return &qtVideoCodecList[indexValue];
else
return NULL;
@@ -161,7 +162,7 @@ QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue)
int quicktime_rnatmpvalue_from_videocodectype(int codecType)
{
int i;
for (i=0;i<qtVideoCodecCount;i++) {
for (i = 0; i < qtVideoCodecCount; i++) {
if (qtVideoCodecList[i].codecType == codecType)
return qtVideoCodecList[i].rnatmpvalue;
}
@@ -172,7 +173,7 @@ int quicktime_rnatmpvalue_from_videocodectype(int codecType)
int quicktime_videocodecType_from_rnatmpvalue(int rnatmpvalue)
{
int i;
for (i=0;i<qtVideoCodecCount;i++) {
for (i = 0; i < qtVideoCodecCount; i++) {
if (qtVideoCodecList[i].rnatmpvalue == rnatmpvalue)
return qtVideoCodecList[i].codecType;
}
@@ -192,12 +193,12 @@ static void CheckError(OSErr err, char *msg, ReportList *reports)
static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports)
{
QTAtomContainer myContainer = NULL;
ComponentResult myErr = noErr;
Ptr myPtr;
long mySize = 0;
QTAtomContainer myContainer = NULL;
ComponentResult myErr = noErr;
Ptr myPtr;
long mySize = 0;
CodecInfo ci;
CodecInfo ci;
QuicktimeCodecData *qcd = rd->qtcodecdata;
@@ -210,9 +211,9 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports)
}
// obtain all current codec settings
SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
// retreive codecdata from quicktime in a atomcontainer
myErr = SCGetSettingsAsAtomContainer(qtdata->theComponent, &myContainer);
@@ -234,7 +235,7 @@ static OSErr QT_SaveCodecSettingsToScene(RenderData *rd, ReportList *reports)
memcpy(qcd->cdParms, myPtr, mySize);
qcd->cdSize = mySize;
GetCodecInfo (&ci, qtdata->gSpatialSettings.codecType, 0);
GetCodecInfo(&ci, qtdata->gSpatialSettings.codecType, 0);
}
else {
BKE_reportf(reports, RPT_ERROR, "Quicktime: QT_SaveCodecSettingsToScene failed\n");
@@ -252,8 +253,8 @@ bail:
static OSErr QT_GetCodecSettingsFromScene(RenderData *rd, ReportList *reports)
{
Handle myHandle = NULL;
ComponentResult myErr = noErr;
Handle myHandle = NULL;
ComponentResult myErr = noErr;
QuicktimeCodecData *qcd = rd->qtcodecdata;
@@ -272,9 +273,9 @@ static OSErr QT_GetCodecSettingsFromScene(RenderData *rd, ReportList *reports)
}
// update runtime codecsettings for use with the codec dialog
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
//Fill the render QuicktimeCodecSettigns struct
@@ -304,12 +305,12 @@ bail:
}
static OSErr QT_AddUserDataTextToMovie (Movie theMovie, char *theText, OSType theType)
static OSErr QT_AddUserDataTextToMovie(Movie theMovie, char *theText, OSType theType)
{
UserData myUserData = NULL;
Handle myHandle = NULL;
long myLength = strlen(theText);
OSErr myErr = noErr;
UserData myUserData = NULL;
Handle myHandle = NULL;
long myLength = strlen(theText);
OSErr myErr = noErr;
// get the movie's user data list
myUserData = GetMovieUserData(theMovie);
@@ -343,10 +344,10 @@ static void QT_CreateMyVideoTrack(int rectx, int recty, ReportList *reports)
trackFrame.bottom = recty;
trackFrame.right = rectx;
qtexport->theTrack = NewMovieTrack (qtexport->theMovie,
FixRatio(trackFrame.right, 1),
FixRatio(trackFrame.bottom, 1),
0);
qtexport->theTrack = NewMovieTrack(qtexport->theMovie,
FixRatio(trackFrame.right, 1),
FixRatio(trackFrame.bottom, 1),
0);
CheckError(GetMoviesError(), "NewMovieTrack error", reports);
// SetIdentityMatrix(&myMatrix);
@@ -354,17 +355,17 @@ static void QT_CreateMyVideoTrack(int rectx, int recty, ReportList *reports)
// TranslateMatrix(&myMatrix, 0, Long2Fix(trackFrame.bottom));
// SetMovieMatrix(qtexport->theMovie, &myMatrix);
qtexport->theMedia = NewTrackMedia (qtexport->theTrack,
VideoMediaType,
qtdata->kVideoTimeScale,
nil,
0);
qtexport->theMedia = NewTrackMedia(qtexport->theTrack,
VideoMediaType,
qtdata->kVideoTimeScale,
nil,
0);
CheckError(GetMoviesError(), "NewTrackMedia error", reports);
err = BeginMediaEdits (qtexport->theMedia);
err = BeginMediaEdits(qtexport->theMedia);
CheckError(err, "BeginMediaEdits error", reports);
QT_StartAddVideoSamplesToMedia (&trackFrame, rectx, recty, reports);
QT_StartAddVideoSamplesToMedia(&trackFrame, rectx, recty, reports);
}
@@ -372,40 +373,40 @@ static void QT_EndCreateMyVideoTrack(ReportList *reports)
{
OSErr err = noErr;
QT_EndAddVideoSamplesToMedia ();
QT_EndAddVideoSamplesToMedia();
err = EndMediaEdits (qtexport->theMedia);
err = EndMediaEdits(qtexport->theMedia);
CheckError(err, "EndMediaEdits error", reports);
err = InsertMediaIntoTrack (qtexport->theTrack,
kTrackStart, /* track start time */
kMediaStart, /* media start time */
GetMediaDuration (qtexport->theMedia),
fixed1);
err = InsertMediaIntoTrack(qtexport->theTrack,
kTrackStart, /* track start time */
kMediaStart, /* media start time */
GetMediaDuration(qtexport->theMedia),
fixed1);
CheckError(err, "InsertMediaIntoTrack error", reports);
}
static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, int recty, ReportList *reports)
static void QT_StartAddVideoSamplesToMedia(const Rect *trackFrame, int rectx, int recty, ReportList *reports)
{
SCTemporalSettings gTemporalSettings;
OSErr err = noErr;
qtexport->ibuf = IMB_allocImBuf (rectx, recty, 32, IB_rect);
qtexport->ibuf2 = IMB_allocImBuf (rectx, recty, 32, IB_rect);
qtexport->ibuf = IMB_allocImBuf(rectx, recty, 32, IB_rect);
qtexport->ibuf2 = IMB_allocImBuf(rectx, recty, 32, IB_rect);
err = NewGWorldFromPtr( &qtexport->theGWorld,
k32ARGBPixelFormat,
trackFrame,
NULL, NULL, 0,
(Ptr)qtexport->ibuf->rect,
rectx * 4 );
CheckError (err, "NewGWorldFromPtr error", reports);
err = NewGWorldFromPtr(&qtexport->theGWorld,
k32ARGBPixelFormat,
trackFrame,
NULL, NULL, 0,
(Ptr)qtexport->ibuf->rect,
rectx * 4);
CheckError(err, "NewGWorldFromPtr error", reports);
qtexport->thePixMap = GetGWorldPixMap(qtexport->theGWorld);
LockPixels(qtexport->thePixMap);
SCDefaultPixMapSettings (qtdata->theComponent, qtexport->thePixMap, true);
SCDefaultPixMapSettings(qtdata->theComponent, qtexport->thePixMap, true);
// workaround for crash with H.264, which requires an upgrade to
// the new callback based api for proper encoding, but that's not
@@ -418,32 +419,32 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame, int rectx, i
}
}
SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &gTemporalSettings);
SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
err = SCCompressSequenceBegin(qtdata->theComponent, qtexport->thePixMap, NULL, &qtexport->anImageDescription);
CheckError (err, "SCCompressSequenceBegin error", reports );
CheckError(err, "SCCompressSequenceBegin error", reports);
}
static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int recty, ReportList *reports)
static void QT_DoAddVideoSamplesToMedia(int frame, int *pixels, int rectx, int recty, ReportList *reports)
{
OSErr err = noErr;
Rect imageRect;
OSErr err = noErr;
Rect imageRect;
int index;
int boxsize;
int index;
int boxsize;
unsigned char *from, *to;
short syncFlag;
long dataSize;
Handle compressedData;
Ptr myPtr;
short syncFlag;
long dataSize;
Handle compressedData;
Ptr myPtr;
//copy and flip renderdata
memcpy(qtexport->ibuf2->rect, pixels, 4*rectx*recty);
memcpy(qtexport->ibuf2->rect, pixels, 4 * rectx * recty);
IMB_flipy(qtexport->ibuf2);
//get pointers to parse bitmapdata
@@ -455,42 +456,42 @@ static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int
//parse RGBA bitmap into Quicktime's ARGB GWorld
boxsize = rectx * recty;
for ( index = 0; index < boxsize; index++) {
for (index = 0; index < boxsize; index++) {
to[0] = from[3];
to[1] = from[0];
to[2] = from[1];
to[3] = from[2];
to +=4, from += 4;
to += 4, from += 4;
}
err = SCCompressSequenceFrame(qtdata->theComponent,
qtexport->thePixMap,
&imageRect,
&compressedData,
&dataSize,
&syncFlag);
qtexport->thePixMap,
&imageRect,
&compressedData,
&dataSize,
&syncFlag);
CheckError(err, "SCCompressSequenceFrame error", reports);
err = AddMediaSample(qtexport->theMedia,
compressedData,
0,
dataSize,
qtdata->duration,
(SampleDescriptionHandle)qtexport->anImageDescription,
1,
syncFlag,
NULL);
compressedData,
0,
dataSize,
qtdata->duration,
(SampleDescriptionHandle)qtexport->anImageDescription,
1,
syncFlag,
NULL);
CheckError(err, "AddMediaSample error", reports);
}
static void QT_EndAddVideoSamplesToMedia (void)
static void QT_EndAddVideoSamplesToMedia(void)
{
SCCompressSequenceEnd(qtdata->theComponent);
UnlockPixels(qtexport->thePixMap);
if (qtexport->theGWorld)
DisposeGWorld (qtexport->theGWorld);
DisposeGWorld(qtexport->theGWorld);
if (qtexport->ibuf)
IMB_freeImBuf(qtexport->ibuf);
@@ -504,7 +505,7 @@ void filepath_qt(char *string, RenderData *rd)
{
char txt[64];
if (string==0) return;
if (string == 0) return;
strcpy(string, rd->pic);
BLI_path_abs(string, G.main->name);
@@ -526,12 +527,12 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
char theFullPath[255];
#ifdef __APPLE__
int myFile;
FSRef myRef;
int myFile;
FSRef myRef;
#else
char *qtname;
char *qtname;
#endif
int success= 1;
int success = 1;
if (qtexport == NULL) qtexport = MEM_callocN(sizeof(QuicktimeExport), "QuicktimeExport");
@@ -561,7 +562,7 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
sprintf(theFullPath, "%s", name);
/* hack: create an empty file to make FSPathMakeRef() happy */
myFile = open(theFullPath, O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR|S_IRUSR|S_IWUSR);
myFile = open(theFullPath, O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRUSR | S_IWUSR);
if (myFile < 0) {
BKE_reportf(reports, RPT_ERROR, "error while creating movie file!\n");
/* do something? */
@@ -582,17 +583,17 @@ int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, R
err = FSMakeFSSpec(0, 0L, qtexport->qtfilename, &qtexport->theSpec);
#endif
err = CreateMovieFile (&qtexport->theSpec,
kMyCreatorType,
smCurrentScript,
createMovieFileDeleteCurFile | createMovieFileDontCreateResFile,
&qtexport->resRefNum,
&qtexport->theMovie );
err = CreateMovieFile(&qtexport->theSpec,
kMyCreatorType,
smCurrentScript,
createMovieFileDeleteCurFile | createMovieFileDontCreateResFile,
&qtexport->resRefNum,
&qtexport->theMovie);
CheckError(err, "CreateMovieFile error", reports);
if (err != noErr) {
BKE_reportf(reports, RPT_ERROR, "Unable to create Quicktime movie: %s", name);
success= 0;
success = 0;
#ifdef __APPLE__
ExitMoviesOnThread();
#endif
@@ -622,7 +623,7 @@ void end_qt(void)
if (qtexport->theMovie) {
QT_EndCreateMyVideoTrack(NULL);
err = AddMovieResource (qtexport->theMovie, qtexport->resRefNum, &resId, qtexport->qtfilename);
err = AddMovieResource(qtexport->theMovie, qtexport->resRefNum, &resId, qtexport->qtfilename);
CheckError(err, "AddMovieResource error", NULL);
err = QT_AddUserDataTextToMovie(qtexport->theMovie, "Made with Blender", kUserDataTextInformation);
@@ -639,7 +640,7 @@ void end_qt(void)
}
#ifdef __APPLE__
ExitMoviesOnThread();
ExitMoviesOnThread();
#endif
if (qtexport) {
@@ -662,36 +663,36 @@ void free_qtcomponentdata(void)
static void check_renderbutton_framerate(RenderData *rd, ReportList *reports)
{
// to keep float framerates consistent between the codec dialog and frs/sec button.
OSErr err;
OSErr err;
err = SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
err = SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
CheckError(err, "SCGetInfo fr error", reports);
if ( (rd->frs_sec == 24 || rd->frs_sec == 30 || rd->frs_sec == 60) &&
(qtdata->gTemporalSettings.frameRate == 1571553 ||
qtdata->gTemporalSettings.frameRate == 1964113 ||
qtdata->gTemporalSettings.frameRate == 3928227))
(qtdata->gTemporalSettings.frameRate == 1571553 ||
qtdata->gTemporalSettings.frameRate == 1964113 ||
qtdata->gTemporalSettings.frameRate == 3928227))
{
/* do nothing */
}
else {
if (rd->frs_sec_base > 0)
qtdata->gTemporalSettings.frameRate =
((float)(rd->frs_sec << 16) / rd->frs_sec_base);
((float)(rd->frs_sec << 16) / rd->frs_sec_base);
}
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
CheckError(err, "SCSetInfo error", reports);
if (qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps
if (qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps
qtdata->kVideoTimeScale = 24000;
qtdata->duration = 1001;
}
else if (qtdata->gTemporalSettings.frameRate == 1964113) { // 29.97 fps
else if (qtdata->gTemporalSettings.frameRate == 1964113) { // 29.97 fps
qtdata->kVideoTimeScale = 30000;
qtdata->duration = 1001;
}
else if (qtdata->gTemporalSettings.frameRate == 3928227) { // 59.94 fps
else if (qtdata->gTemporalSettings.frameRate == 3928227) { // 59.94 fps
qtdata->kVideoTimeScale = 60000;
qtdata->duration = 1001;
}
@@ -704,14 +705,14 @@ static void check_renderbutton_framerate(RenderData *rd, ReportList *reports)
void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
{
if (imf->imtype == R_IMF_IMTYPE_QUICKTIME) {
if ((rd->qtcodecsettings.codecType== 0) ||
(rd->qtcodecsettings.codecSpatialQuality <0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {
if ((rd->qtcodecsettings.codecType == 0) ||
(rd->qtcodecsettings.codecSpatialQuality < 0) ||
(rd->qtcodecsettings.codecSpatialQuality > 100)) {
rd->qtcodecsettings.codecType = kJPEGCodecType;
rd->qtcodecsettings.codec = (int)anyCodec;
rd->qtcodecsettings.codecSpatialQuality = (codecHighQuality*100)/codecLosslessQuality;
rd->qtcodecsettings.codecTemporalQuality = (codecHighQuality*100)/codecLosslessQuality;
rd->qtcodecsettings.codecSpatialQuality = (codecHighQuality * 100) / codecLosslessQuality;
rd->qtcodecsettings.codecTemporalQuality = (codecHighQuality * 100) / codecLosslessQuality;
rd->qtcodecsettings.keyFrameRate = 25;
rd->qtcodecsettings.bitRate = 5000000; //5 Mbps
}
@@ -721,7 +722,7 @@ void quicktime_verify_image_type(RenderData *rd, ImageFormatData *imf)
int get_qtcodec_settings(RenderData *rd, ReportList *reports)
{
OSErr err = noErr;
// erase any existing codecsetting
// erase any existing codecsetting
if (qtdata) {
if (qtdata->theComponent) CloseComponent(qtdata->theComponent);
free_qtcomponentdata();
@@ -736,14 +737,14 @@ int get_qtcodec_settings(RenderData *rd, ReportList *reports)
QT_GetCodecSettingsFromScene(rd, reports);
}
else {
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
qtdata->gSpatialSettings.codecType = rd->qtcodecsettings.codecType;
qtdata->gSpatialSettings.codec = (CodecComponent)rd->qtcodecsettings.codec;
qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) /100;
qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) /100;
qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) / 100;
qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) / 100;
qtdata->gTemporalSettings.keyFrameRate = rd->qtcodecsettings.keyFrameRate;
qtdata->aDataRateSetting.dataRate = rd->qtcodecsettings.bitRate;
qtdata->gSpatialSettings.depth = rd->qtcodecsettings.colorDepth;
@@ -751,14 +752,14 @@ int get_qtcodec_settings(RenderData *rd, ReportList *reports)
qtdata->aDataRateSetting.minTemporalQuality = (rd->qtcodecsettings.minTemporalQuality * codecLosslessQuality) / 100;
qtdata->aDataRateSetting.frameDuration = rd->frs_sec;
SetMovieTimeScale(qtexport->theMovie, rd->frs_sec_base*1000);
SetMovieTimeScale(qtexport->theMovie, rd->frs_sec_base * 1000);
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
CheckError(err, "SCSetInfo1 error", reports);
err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
CheckError(err, "SCSetInfo2 error", reports);
err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
CheckError(err, "SCSetInfo3 error", reports);
}
@@ -769,7 +770,7 @@ int get_qtcodec_settings(RenderData *rd, ReportList *reports)
static int request_qtcodec_settings(bContext *C, wmOperator *op)
{
OSErr err = noErr;
OSErr err = noErr;
Scene *scene = CTX_data_scene(C);
RenderData *rd = &scene->r;
@@ -788,14 +789,14 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
QT_GetCodecSettingsFromScene(rd, op->reports);
}
else {
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
qtdata->gSpatialSettings.codecType = rd->qtcodecsettings.codecType;
qtdata->gSpatialSettings.codec = (CodecComponent)rd->qtcodecsettings.codec;
qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) /100;
qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) /100;
qtdata->gSpatialSettings.spatialQuality = (rd->qtcodecsettings.codecSpatialQuality * codecLosslessQuality) / 100;
qtdata->gTemporalSettings.temporalQuality = (rd->qtcodecsettings.codecTemporalQuality * codecLosslessQuality) / 100;
qtdata->gTemporalSettings.keyFrameRate = rd->qtcodecsettings.keyFrameRate;
qtdata->gTemporalSettings.frameRate = ((float)(rd->frs_sec << 16) / rd->frs_sec_base);
qtdata->aDataRateSetting.dataRate = rd->qtcodecsettings.bitRate;
@@ -805,29 +806,29 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
qtdata->aDataRateSetting.frameDuration = rd->frs_sec;
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
CheckError(err, "SCSetInfo1 error", op->reports);
err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
err = SCSetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
CheckError(err, "SCSetInfo2 error", op->reports);
err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
err = SCSetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
CheckError(err, "SCSetInfo3 error", op->reports);
}
// put up the dialog box - it needs to be called from the main thread
// put up the dialog box - it needs to be called from the main thread
err = SCRequestSequenceSettings(qtdata->theComponent);
if (err == scUserCancelled) {
return OPERATOR_FINISHED;
}
// update runtime codecsettings for use with the codec dialog
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
// update runtime codecsettings for use with the codec dialog
SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting);
SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings);
SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings);
//Fill the render QuicktimeCodecSettings struct
//Fill the render QuicktimeCodecSettings struct
rd->qtcodecsettings.codecTemporalQuality = (qtdata->gTemporalSettings.temporalQuality * 100) / codecLosslessQuality;
//Do not override scene frame rate (qtdata->gTemporalSettings.framerate)
//Do not override scene frame rate (qtdata->gTemporalSettings.framerate)
rd->qtcodecsettings.keyFrameRate = qtdata->gTemporalSettings.keyFrameRate;
rd->qtcodecsettings.codecType = qtdata->gSpatialSettings.codecType;
@@ -838,26 +839,26 @@ static int request_qtcodec_settings(bContext *C, wmOperator *op)
rd->qtcodecsettings.bitRate = qtdata->aDataRateSetting.dataRate;
rd->qtcodecsettings.minSpatialQuality = (qtdata->aDataRateSetting.minSpatialQuality * 100) / codecLosslessQuality;
rd->qtcodecsettings.minTemporalQuality = (qtdata->aDataRateSetting.minTemporalQuality * 100) / codecLosslessQuality;
//Frame duration is already known (qtdata->aDataRateSetting.frameDuration)
//Frame duration is already known (qtdata->aDataRateSetting.frameDuration)
QT_SaveCodecSettingsToScene(rd, op->reports);
// framerate jugglin'
if (qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps
if (qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps
qtdata->kVideoTimeScale = 24000;
qtdata->duration = 1001;
rd->frs_sec = 24;
rd->frs_sec_base = 1.001;
}
else if (qtdata->gTemporalSettings.frameRate == 1964113) { // 29.97 fps
else if (qtdata->gTemporalSettings.frameRate == 1964113) { // 29.97 fps
qtdata->kVideoTimeScale = 30000;
qtdata->duration = 1001;
rd->frs_sec = 30;
rd->frs_sec_base = 1.001;
}
else if (qtdata->gTemporalSettings.frameRate == 3928227) { // 59.94 fps
else if (qtdata->gTemporalSettings.frameRate == 3928227) { // 59.94 fps
qtdata->kVideoTimeScale = 60000;
qtdata->duration = 1001;
@@ -917,7 +918,7 @@ void SCENE_OT_render_data_set_quicktime_codec(wmOperatorType *ot)
ot->poll = ED_operator_setqtcodec;
/* flags */
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
#endif /* USE_QTKIT */

View File

@@ -58,35 +58,35 @@
#include "quicktime_import.h"
#include "quicktime_export.h"
#define RECT_WIDTH(r) (r.right-r.left)
#define RECT_HEIGHT(r) (r.bottom-r.top)
#define RECT_WIDTH(r) (r.right - r.left)
#define RECT_HEIGHT(r) (r.bottom - r.top)
#define QTIME_DEBUG 0
typedef struct _QuicktimeMovie {
GWorldPtr offscreenGWorld;
PixMapHandle offscreenPixMap;
Movie movie;
Rect movieBounds;
short movieRefNum;
short movieResId;
int movWidth, movHeight;
GWorldPtr offscreenGWorld;
PixMapHandle offscreenPixMap;
Movie movie;
Rect movieBounds;
short movieRefNum;
short movieResId;
int movWidth, movHeight;
int framecount;
int framecount;
ImBuf *ibuf;
ImBuf *ibuf;
TimeValue *frameIndex;
Media theMedia;
Track theTrack;
long trackIndex;
short depth;
TimeValue *frameIndex;
Media theMedia;
Track theTrack;
long trackIndex;
short depth;
int have_gw; //ugly
int have_gw; /* ugly */
} QuicktimeMovie;
@@ -105,7 +105,7 @@ void quicktime_init(void)
#endif /* _WIN32 */
/* Initialize QuickTime */
#if defined(_WIN32) || defined (__APPLE__)
#if defined(_WIN32) || defined(__APPLE__)
nerr = EnterMovies();
if (nerr != noErr)
G.have_quicktime = FALSE;
@@ -113,7 +113,7 @@ void quicktime_init(void)
#endif /* _WIN32 || __APPLE__ */
#ifdef __linux__
/* inititalize quicktime codec registry */
lqt_registry_init();
lqt_registry_init();
#endif
G.have_quicktime = TRUE;
}
@@ -141,7 +141,7 @@ char *get_valid_qtname(char *name)
TCHAR Buffer[MAX_PATH];
DWORD dwRet;
char *qtname;
DynStr *ds= BLI_dynstr_new();
DynStr *ds = BLI_dynstr_new();
dwRet = GetCurrentDirectory(MAX_PATH, Buffer);
@@ -166,7 +166,7 @@ char *get_valid_qtname(char *name)
BLI_dynstr_append(ds, name);
}
qtname= BLI_dynstr_get_cstring(ds);
qtname = BLI_dynstr_get_cstring(ds);
BLI_dynstr_free(ds);
return qtname;
@@ -176,33 +176,33 @@ char *get_valid_qtname(char *name)
int anim_is_quicktime(const char *name)
{
FSSpec theFSSpec;
char theFullPath[255];
FSSpec theFSSpec;
char theFullPath[255];
Boolean isMovieFile = false;
AliasHandle myAlias = NULL;
Component myImporter = NULL;
Boolean isMovieFile = false;
AliasHandle myAlias = NULL;
Component myImporter = NULL;
#ifdef __APPLE__
FInfo myFinderInfo;
FSRef myRef;
FInfo myFinderInfo;
FSRef myRef;
#else
char *qtname;
Str255 dst;
Str255 dst;
#endif
OSErr err = noErr;
OSErr err = noErr;
// don't let quicktime movie import handle these
if ( BLI_testextensie(name, ".swf") ||
BLI_testextensie(name, ".txt") ||
BLI_testextensie(name, ".mpg") ||
BLI_testextensie(name, ".avi") || // wouldnt be appropriate ;)
BLI_testextensie(name, ".tga") ||
BLI_testextensie(name, ".png") ||
BLI_testextensie(name, ".bmp") ||
BLI_testextensie(name, ".jpg") ||
BLI_testextensie(name, ".wav") ||
BLI_testextensie(name, ".zip") ||
BLI_testextensie(name, ".mp3"))
if (BLI_testextensie(name, ".swf") ||
BLI_testextensie(name, ".txt") ||
BLI_testextensie(name, ".mpg") ||
BLI_testextensie(name, ".avi") || /* wouldnt be appropriate ;) */
BLI_testextensie(name, ".tga") ||
BLI_testextensie(name, ".png") ||
BLI_testextensie(name, ".bmp") ||
BLI_testextensie(name, ".jpg") ||
BLI_testextensie(name, ".wav") ||
BLI_testextensie(name, ".zip") ||
BLI_testextensie(name, ".mp3"))
{
return 0;
}
@@ -245,7 +245,7 @@ int anim_is_quicktime(const char *name)
}
}
if ((err == noErr) && (myImporter != NULL)) { // this file is a movie file
if ((err == noErr) && (myImporter != NULL)) { /* this file is a movie file */
isMovieFile = true;
}
@@ -268,8 +268,8 @@ void free_anim_quicktime(struct anim *anim)
DisposeMovie(anim->qtime->movie);
CloseMovieFile(anim->qtime->movieRefNum);
if (anim->qtime->frameIndex) MEM_freeN (anim->qtime->frameIndex);
if (anim->qtime) MEM_freeN (anim->qtime);
if (anim->qtime->frameIndex) MEM_freeN(anim->qtime->frameIndex);
if (anim->qtime) MEM_freeN(anim->qtime);
anim->qtime = NULL;
@@ -280,17 +280,17 @@ void free_anim_quicktime(struct anim *anim)
static OSErr QT_get_frameIndexes(struct anim *anim)
{
int i;
OSErr anErr = noErr;
OSType media = VideoMediaType;
OSErr anErr = noErr;
OSType media = VideoMediaType;
TimeValue nextTime = 0;
TimeValue startPoint;
TimeValue tmpstartPoint;
TimeValue startPoint;
TimeValue tmpstartPoint;
long sampleCount = 0;
startPoint = -1;
GetMovieNextInterestingTime(anim->qtime->movie, nextTimeMediaSample+nextTimeEdgeOK, (TimeValue)1, &media, 0,
1, &startPoint, NULL);
GetMovieNextInterestingTime(anim->qtime->movie, nextTimeMediaSample + nextTimeEdgeOK, (TimeValue)1, &media, 0,
1, &startPoint, NULL);
tmpstartPoint = startPoint;
@@ -320,16 +320,16 @@ static OSErr QT_get_frameIndexes(struct anim *anim)
}
ImBuf * qtime_fetchibuf (struct anim *anim, int position)
ImBuf *qtime_fetchibuf(struct anim *anim, int position)
{
PixMapHandle myPixMap = NULL;
Ptr myPtr;
PixMapHandle myPixMap = NULL;
Ptr myPtr;
register int index;
register int boxsize;
register int index;
register int boxsize;
register uint32_t *readPos;
register uint32_t *changePos;
register uint32_t *readPos;
register uint32_t *changePos;
ImBuf *ibuf = NULL;
unsigned int *rect;
@@ -344,7 +344,7 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
return (NULL);
}
ibuf = IMB_allocImBuf (anim->x, anim->y, 32, IB_rect);
ibuf = IMB_allocImBuf(anim->x, anim->y, 32, IB_rect);
rect = ibuf->rect;
SetMovieTimeValue(anim->qtime->movie, anim->qtime->frameIndex[position]);
@@ -356,8 +356,8 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
myPtr = GetPixBaseAddr(myPixMap);
if (myPtr == NULL) {
printf ("Error reading frame from Quicktime");
IMB_freeImBuf (ibuf);
printf("Error reading frame from Quicktime");
IMB_freeImBuf(ibuf);
return NULL;
}
@@ -367,10 +367,10 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
#ifdef __APPLE__
// Swap alpha byte to the end, so ARGB become RGBA;
from= (unsigned char *)readPos;
to= (unsigned char *)changePos;
from = (unsigned char *)readPos;
to = (unsigned char *)changePos;
for ( index = 0; index < boxsize; index++, from+=4, to+=4 ) {
for (index = 0; index < boxsize; index++, from += 4, to += 4) {
to[3] = from[0];
to[0] = from[1];
to[1] = from[2];
@@ -379,14 +379,14 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
#endif
#ifdef _WIN32
for ( index = 0; index < boxsize; index++, changePos++, readPos++ )
*( changePos ) = *(readPos );
for (index = 0; index < boxsize; index++, changePos++, readPos++)
*(changePos) = *(readPos);
if (anim->qtime->depth < 32) {
//add alpha to ibuf
boxsize = anim->x * anim->y * 4;
crect = (unsigned char *) rect;
for ( index = 0; index < boxsize; index+=4, crect+=4 ) {
for (index = 0; index < boxsize; index += 4, crect += 4) {
crect[3] = 0xFF;
}
}
@@ -403,12 +403,12 @@ ImBuf * qtime_fetchibuf (struct anim *anim, int position)
static int GetFirstVideoMedia(struct anim *anim)
{
long numTracks;
OSType mediaType;
long numTracks;
OSType mediaType;
numTracks = GetMovieTrackCount(anim->qtime->movie);
for (anim->qtime->trackIndex=1; anim->qtime->trackIndex<=numTracks; (anim->qtime->trackIndex)++) {
for (anim->qtime->trackIndex = 1; anim->qtime->trackIndex <= numTracks; (anim->qtime->trackIndex)++) {
anim->qtime->theTrack = GetMovieIndTrack(anim->qtime->movie, anim->qtime->trackIndex);
if (anim->qtime->theTrack)
@@ -425,7 +425,7 @@ static int GetFirstVideoMedia(struct anim *anim)
static short GetFirstVideoTrackPixelDepth(struct anim *anim)
{
SampleDescriptionHandle imageDescH = (SampleDescriptionHandle)NewHandle(sizeof(Handle));
SampleDescriptionHandle imageDescH = (SampleDescriptionHandle)NewHandle(sizeof(Handle));
// long trackIndex = 0; /*unused*/
if (!GetFirstVideoMedia(anim))
@@ -440,19 +440,19 @@ static short GetFirstVideoTrackPixelDepth(struct anim *anim)
int startquicktime(struct anim *anim)
{
FSSpec theFSSpec;
FSSpec theFSSpec;
OSErr err = noErr;
char theFullPath[255];
OSErr err = noErr;
char theFullPath[255];
#ifdef __APPLE__
FSRef myRef;
FSRef myRef;
#else
char *qtname;
Str255 dst;
char *qtname;
Str255 dst;
#endif
short depth = 0;
anim->qtime = MEM_callocN (sizeof(QuicktimeMovie), "animqt");
anim->qtime = MEM_callocN(sizeof(QuicktimeMovie), "animqt");
anim->qtime->have_gw = FALSE;
if (anim->qtime == NULL) {
@@ -481,8 +481,8 @@ int startquicktime(struct anim *anim)
if (err == noErr) {
if (QTIME_DEBUG) printf("qt: movie opened\n");
err = NewMovieFromFile(&anim->qtime->movie,
anim->qtime->movieRefNum,
&anim->qtime->movieResId, NULL, newMovieActive, NULL);
anim->qtime->movieRefNum,
&anim->qtime->movieResId, NULL, newMovieActive, NULL);
}
if (err) {
@@ -506,22 +506,22 @@ int startquicktime(struct anim *anim)
return -1;
}
anim->qtime->ibuf = IMB_allocImBuf (anim->x, anim->y, 32, IB_rect);
anim->qtime->ibuf = IMB_allocImBuf(anim->x, anim->y, 32, IB_rect);
#ifdef _WIN32
err = NewGWorldFromPtr(&anim->qtime->offscreenGWorld,
k32RGBAPixelFormat,
&anim->qtime->movieBounds,
NULL, NULL, 0,
(unsigned char *)anim->qtime->ibuf->rect,
anim->x * 4);
k32RGBAPixelFormat,
&anim->qtime->movieBounds,
NULL, NULL, 0,
(unsigned char *)anim->qtime->ibuf->rect,
anim->x * 4);
#else
err = NewGWorldFromPtr(&anim->qtime->offscreenGWorld,
k32ARGBPixelFormat,
&anim->qtime->movieBounds,
NULL, NULL, 0,
(unsigned char *)anim->qtime->ibuf->rect,
anim->x * 4);
k32ARGBPixelFormat,
&anim->qtime->movieBounds,
NULL, NULL, 0,
(unsigned char *)anim->qtime->ibuf->rect,
anim->x * 4);
#endif /* _WIN32 */
if (err == noErr) {
@@ -554,29 +554,29 @@ int startquicktime(struct anim *anim)
anim->curposition = 0;
if (QTIME_DEBUG) printf("qt: load %s %dx%dx%d frames %d\n", anim->name, anim->qtime->movWidth,
anim->qtime->movHeight, anim->qtime->depth, anim->qtime->framecount);
anim->qtime->movHeight, anim->qtime->depth, anim->qtime->framecount);
return 0;
}
int imb_is_a_quicktime (char *name)
int imb_is_a_quicktime(char *name)
{
GraphicsImportComponent theImporter = NULL;
GraphicsImportComponent theImporter = NULL;
FSSpec theFSSpec;
FSSpec theFSSpec;
#ifdef _WIN32
Str255 dst; /*unused*/
Str255 dst; /*unused*/
#endif
char theFullPath[255];
char theFullPath[255];
// Boolean isMovieFile = false; /*unused*/
// AliasHandle myAlias = NULL; /*unused*/
// Component myImporter = NULL; /*unused*/
#ifdef __APPLE__
// FInfo myFinderInfo; /*unused*/
FSRef myRef;
FSRef myRef;
#endif
OSErr err = noErr;
OSErr err = noErr;
if (!G.have_quicktime) return 0;
@@ -587,7 +587,7 @@ int imb_is_a_quicktime (char *name)
BLI_testextensie(name, ".txt") ||
BLI_testextensie(name, ".mpg") ||
BLI_testextensie(name, ".wav") ||
BLI_testextensie(name, ".mov") || // not as image, doesn't work
BLI_testextensie(name, ".mov") || // not as image, doesn't work
BLI_testextensie(name, ".avi") ||
BLI_testextensie(name, ".mp3"))
{
@@ -616,30 +616,30 @@ int imb_is_a_quicktime (char *name)
ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
{
Rect myRect;
OSErr err = noErr;
GraphicsImportComponent gImporter = NULL;
Rect myRect;
OSErr err = noErr;
GraphicsImportComponent gImporter = NULL;
ImageDescriptionHandle desc;
ImageDescriptionHandle desc;
ComponentInstance dataHandler;
ComponentInstance dataHandler;
PointerDataRef dataref;
int x, y, depth;
int have_gw = FALSE;
ImBuf *ibuf = NULL;
// ImBuf *imbuf = NULL; /*unused*/
GWorldPtr offGWorld;
PixMapHandle myPixMap = NULL;
GWorldPtr offGWorld;
PixMapHandle myPixMap = NULL;
#ifdef __APPLE__
Ptr myPtr;
Ptr myPtr;
register int index;
register int boxsize;
register int index;
register int boxsize;
register uint32_t *readPos;
register uint32_t *changePos;
register uint32_t *readPos;
register uint32_t *changePos;
ImBuf *wbuf = NULL;
unsigned int *rect;
@@ -651,17 +651,17 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
if (QTIME_DEBUG) printf("qt: attempt to load mem as image\n");
dataref= (PointerDataRef)NewHandle(sizeof(PointerDataRefRecord));
dataref = (PointerDataRef)NewHandle(sizeof(PointerDataRefRecord));
(**dataref).data = mem;
(**dataref).dataLength = size;
err = OpenADataHandler((Handle)dataref,
PointerDataHandlerSubType,
nil,
(OSType)0,
nil,
kDataHCanRead,
&dataHandler);
PointerDataHandlerSubType,
nil,
(OSType)0,
nil,
kDataHCanRead,
&dataHandler);
if (err != noErr) {
if (QTIME_DEBUG) printf("no datahandler\n");
goto bail;
@@ -679,7 +679,7 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
goto bail;
}
err = GraphicsImportGetImageDescription (gImporter, &desc );
err = GraphicsImportGetImageDescription(gImporter, &desc);
if (err != noErr) {
if (QTIME_DEBUG) printf("no imagedescription\n");
goto bail;
@@ -693,26 +693,26 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
ibuf = IMB_allocImBuf(x, y, depth, 0);
ibuf->ftype = QUICKTIME;
DisposeHandle((Handle)dataref);
if (gImporter != NULL) CloseComponent(gImporter);
if (gImporter != NULL) CloseComponent(gImporter);
return ibuf;
}
#ifdef __APPLE__
ibuf = IMB_allocImBuf (x, y, 32, IB_rect);
wbuf = IMB_allocImBuf (x, y, 32, IB_rect);
ibuf = IMB_allocImBuf(x, y, 32, IB_rect);
wbuf = IMB_allocImBuf(x, y, 32, IB_rect);
err = NewGWorldFromPtr(&offGWorld,
k32ARGBPixelFormat,
&myRect, NULL, NULL, 0,
(unsigned char *)wbuf->rect, x * 4);
k32ARGBPixelFormat,
&myRect, NULL, NULL, 0,
(unsigned char *)wbuf->rect, x * 4);
#else
ibuf = IMB_allocImBuf (x, y, 32, IB_rect);
ibuf = IMB_allocImBuf(x, y, 32, IB_rect);
err = NewGWorldFromPtr(&offGWorld,
k32RGBAPixelFormat,
&myRect, NULL, NULL, 0,
(unsigned char *)ibuf->rect, x * 4);
k32RGBAPixelFormat,
&myRect, NULL, NULL, 0,
(unsigned char *)ibuf->rect, x * 4);
#endif
if (err != noErr) {
@@ -734,8 +734,8 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
myPtr = GetPixBaseAddr(myPixMap);
if (myPtr == NULL) {
printf ("Error reading frame from Quicktime");
IMB_freeImBuf (ibuf);
printf("Error reading frame from Quicktime");
IMB_freeImBuf(ibuf);
return NULL;
}
@@ -744,10 +744,10 @@ ImBuf *imb_quicktime_decode(unsigned char *mem, int size, int flags)
changePos = (uint32_t *) rect;
// Swap alpha byte to the end, so ARGB become RGBA;
from= (unsigned char *)readPos;
to= (unsigned char *)changePos;
from = (unsigned char *)readPos;
to = (unsigned char *)changePos;
for ( index = 0; index < boxsize; index++, from+=4, to+=4 ) {
for (index = 0; index < boxsize; index++, from += 4, to += 4) {
to[3] = from[0];
to[0] = from[1];
to[1] = from[2];
@@ -763,17 +763,17 @@ bail:
#ifdef __APPLE__
if (wbuf) {
IMB_freeImBuf (wbuf);
IMB_freeImBuf(wbuf);
wbuf = NULL;
}
#endif
if (gImporter != NULL) CloseComponent(gImporter);
if (gImporter != NULL) CloseComponent(gImporter);
if (err != noErr) {
if (QTIME_DEBUG) printf("quicktime import unsuccesfull\n");
if (ibuf) {
IMB_freeImBuf (ibuf);
IMB_freeImBuf(ibuf);
ibuf = NULL;
}
}
@@ -788,8 +788,8 @@ bail:
int box = x * y;
unsigned char *arect = (unsigned char *) ibuf->rect;
if ( depth < 32 && (**desc).cType != kGIFCodecType) {
for (i = 0; i < box; i++, arect+=4)
if (depth < 32 && (**desc).cType != kGIFCodecType) {
for (i = 0; i < box; i++, arect += 4)
arect[3] = 0xFF;
}
#endif