Skip to content

Commit

Permalink
merge AkInputBasic and AkInput types
Browse files Browse the repository at this point in the history
  • Loading branch information
recp committed May 3, 2018
1 parent cc1d0a6 commit 6c27954
Show file tree
Hide file tree
Showing 24 changed files with 204 additions and 223 deletions.
29 changes: 12 additions & 17 deletions include/ak/assetkit.h
Original file line number Diff line number Diff line change
Expand Up @@ -551,25 +551,20 @@ typedef struct AkMaterial {
struct AkMaterial *next;
} AkMaterial;

typedef struct AkInputBasic {
AkURL source;
uint32_t index; /* TEXCOORD0, TEXCOORD1... */
bool isIndexed;
AkInputSemantic semantic;
const char *semanticRaw;
struct AkInputBasic *next;
} AkInputBasic;

typedef struct AkInput {
AkInputBasic base;

uint32_t offset;
uint32_t set;
const char *semanticRaw;
struct AkInput *next;
AkURL source;
uint32_t index; /* TEXCOORD0, TEXCOORD1... */
bool isIndexed;
AkInputSemantic semantic;
uint32_t offset;
uint32_t set;
} AkInput;

typedef struct AkJoints {
AkInputBasic * input;
AkTree * extra;
AkInput *input;
AkTree *extra;
} AkJoints;

typedef struct AkVertexWeights {
Expand All @@ -590,8 +585,8 @@ typedef struct AkSkin {
} AkSkin;

typedef struct AkTargets {
AkInputBasic * input;
AkTree * extra;
AkInput *input;
AkTree *extra;
} AkTargets;

typedef struct AkMorph {
Expand Down
38 changes: 19 additions & 19 deletions include/ak/geom.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ struct AkMesh;

typedef struct AkVertices {
/* const char * id; */
const char * name;
AkInputBasic * input;
uint32_t inputCount;
AkTree * extra;
const char *name;
AkTree *extra;
AkInput *input;
uint32_t inputCount;
} AkVertices;

typedef struct AkMeshPrimitive {
Expand Down Expand Up @@ -101,8 +101,8 @@ typedef struct AkMesh {
} AkMesh;

typedef struct AkControlVerts {
AkInputBasic *input;
AkTree *extra;
AkInput *input;
AkTree *extra;
} AkControlVerts;

typedef struct AkSpline {
Expand Down Expand Up @@ -447,17 +447,17 @@ ak_meshIndicesArrayFor(AkMesh * __restrict mesh,
AK_EXPORT
AkSourceBuffState*
ak_meshReserveBuffer(AkMesh * __restrict mesh,
void * __restrict buffid,
size_t itemSize,
uint32_t stride,
size_t acc_count);
void * __restrict buffid,
size_t itemSize,
uint32_t stride,
size_t acc_count);

AK_EXPORT
void
ak_meshReserveBufferForInput(AkMesh * __restrict mesh,
AkInputBasic * __restrict inputb,
uint32_t inputOffset,
size_t count);
ak_meshReserveBufferForInput(AkMesh * __restrict mesh,
AkInput * __restrict input,
uint32_t inputOffset,
size_t count);

AK_EXPORT
void
Expand All @@ -478,8 +478,8 @@ ak_meshMoveBuffers(AkMesh * __restrict mesh);

AK_EXPORT
AkSourceEditHelper*
ak_meshSourceEditHelper(AkMesh * __restrict mesh,
AkInputBasic * __restrict input);
ak_meshSourceEditHelper(AkMesh * __restrict mesh,
AkInput * __restrict input);

AK_EXPORT
AkDuplicator*
Expand All @@ -492,13 +492,13 @@ ak_meshFixIndexBuffer(AkMesh * __restrict mesh,
AkDuplicator * __restrict duplicator);

void
ak_inputNameIndexed(AkInputBasic * __restrict input,
char * __restrict buf);
ak_inputNameIndexed(AkInput * __restrict input,
char * __restrict buf);

void
ak_meshReIndexInputs(AkMesh * __restrict mesh);

AkInputBasic*
AkInput*
ak_meshInputGet(AkMeshPrimitive *prim,
const char *inputSemantic,
uint32_t set);
Expand Down
2 changes: 1 addition & 1 deletion src/bbox/ak_bbox_mesh_prim.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ ak_bbox_mesh_prim(struct AkMeshPrimitive * __restrict prim) {
acc = NULL;

if (!prim->pos
|| !(src = ak_getObjectByUrl(&prim->pos->base.source))
|| !(src = ak_getObjectByUrl(&prim->pos->source))
|| !(acc = src->tcommon)
|| !(posbuff = ak_getObjectByUrl(&acc->source)))
return;
Expand Down
8 changes: 4 additions & 4 deletions src/collada/brep/dae_brep_nurbs.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ ak_dae_nurbs(AkXmlState * __restrict xst,
}
} else if (ak_xml_eqelm(xst, _s_dae_control_vertices)) {
AkControlVerts *cverts;
AkInputBasic *last_input;
AkInput *last_input;
AkXmlElmState xest2;

cverts = ak_heap_calloc(xst->heap,
Expand All @@ -78,7 +78,7 @@ ak_dae_nurbs(AkXmlState * __restrict xst,
break;

if (ak_xml_eqelm(xst, _s_dae_input)) {
AkInputBasic *input;
AkInput *input;

input = ak_heap_calloc(xst->heap,
memPtr,
Expand Down Expand Up @@ -217,7 +217,7 @@ ak_dae_nurbs_surface(AkXmlState * __restrict xst,
}
} else if (ak_xml_eqelm(xst, _s_dae_control_vertices)) {
AkControlVerts *cverts;
AkInputBasic *last_input;
AkInput *last_input;
AkXmlElmState xest2;

cverts = ak_heap_calloc(xst->heap,
Expand All @@ -233,7 +233,7 @@ ak_dae_nurbs_surface(AkXmlState * __restrict xst,
break;

if (ak_xml_eqelm(xst, _s_dae_input)) {
AkInputBasic *input;
AkInput *input;

input = ak_heap_calloc(xst->heap,
memPtr,
Expand Down
72 changes: 36 additions & 36 deletions src/collada/brep/dae_brep_topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,30 +39,30 @@ ak_dae_edges(AkXmlState * __restrict xst,
edges,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
edges->input = input;

Expand Down Expand Up @@ -143,30 +143,30 @@ ak_dae_wires(AkXmlState * __restrict xst,
wires,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
wires->input = input;

Expand Down Expand Up @@ -264,30 +264,30 @@ ak_dae_faces(AkXmlState * __restrict xst,
faces,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
faces->input = input;

Expand Down Expand Up @@ -385,30 +385,30 @@ ak_dae_pcurves(AkXmlState * __restrict xst,
pcurves,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
pcurves->input = input;

Expand Down Expand Up @@ -506,30 +506,30 @@ ak_dae_shells(AkXmlState * __restrict xst,
shells,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
shells->input = input;

Expand Down Expand Up @@ -627,30 +627,30 @@ ak_dae_solids(AkXmlState * __restrict xst,
solids,
sizeof(*input));

input->base.semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);
input->semanticRaw = ak_xml_attr(xst, input, _s_dae_semantic);

ak_xml_attr_url(xst,
_s_dae_source,
input,
&input->base.source);
&input->source);

if (!input->base.semanticRaw || !input->base.source.url)
if (!input->semanticRaw || !input->source.url)
ak_free(input);
else {
AkEnum inputSemantic;
inputSemantic = ak_dae_enumInputSemantic(input->base.semanticRaw);
inputSemantic = ak_dae_enumInputSemantic(input->semanticRaw);

if (inputSemantic < 0)
inputSemantic = AK_INPUT_SEMANTIC_OTHER;

input->base.semantic = inputSemantic;
input->semantic = inputSemantic;
}

input->offset = ak_xml_attrui(xst, _s_dae_offset);
input->set = ak_xml_attrui(xst, _s_dae_set);

if (last_input)
last_input->base.next = &input->base;
last_input->next = input;
else
solids->input = input;

Expand Down
Loading

0 comments on commit 6c27954

Please sign in to comment.