Hi all! This code contains weird bug:
//
// GET LAYER BOUNDS
//
error = PIUGetInfoByIndex(LayerCounter,classLayer,0,&descLayer,NULL);
if (error) goto returnAutoError;
error = sPSActionControl->StringIDToTypeID("bounds", &runtimeKeyID);
if (error) goto returnAutoError;
error = sPSActionControl->StringIDToTypeID("classRectangle", &runtimeClassID);
if (error) goto returnAutoError;
error = PIUGetSingleItemFromDescriptor(descLayer,runtimeKeyID,&descPosition,& descClass);
if (error) goto returnAutoError;
error = sPSActionDescriptor->GetFloat(descPosition, keyTop, &top);
if (error) goto returnAutoError;
error = sPSActionDescriptor->GetFloat(descPosition, keyLeft, &left);
if (error) goto returnAutoError;
error = sPSActionDescriptor->GetFloat(descPosition, keyBottom, &bottom);
if (error) goto returnAutoError;
error = sPSActionDescriptor->GetFloat(descPosition, keyRight, &right);
if (error) goto returnAutoError;
I have a PSD with several layers, and this code returns different values that depend on layer order. This bug can not be reproduced if this is layer in layer group.
I'm generating XML:
<?xml version="1.0" encoding="UTF-8"?>
<LayerGroup name="tile" index="6">
<Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="542.000000" right="1070.000000" hasFile="bg_tile.png" index="2"/>
<Layer name="bg_tile4!" top="222.000000" left="0.000000" bottom="713.000000" right="1070.000000" index="3"/>
<Layer name="bg_tile3!" top="325.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="4"/>
<Layer name="layer!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="5"/>
</LayerGroup>
then change the order:
<?xml version="1.0" encoding="UTF-8"?>
<LayerGroup name="tile" index="6">
<Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="542.000000" right="1070.000000" hasFile="bg_tile.png" index="2"/>
<Layer name="bg_tile4!" top="222.000000" left="0.000000" bottom="713.000000" right="1070.000000" index="3"/>
<Layer name="layer!" top="325.000000" left="0.000000" bottom="860.000000" right="1070.000000" index="4"/>
<Layer name="bg_tile3!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="5"/>
</LayerGroup>
and one more time:
<?xml version="1.0" encoding="UTF-8"?>
<LayerGroup name="tile" index="6">
<Layer name="bg_tile4!" top="325.000000" left="163.000000" bottom="713.000000" right="792.000000" index="2"/>
<Layer name="layer!" top="325.000000" left="0.000000" bottom="860.000000" right="1070.000000" index="3"/>
<Layer name="bg_tile3!" top="540.000000" left="0.000000" bottom="1178.000000" right="1070.000000" index="4"/>
<Layer name="bg_tile@" top="222.000000" left="0.000000" bottom="1178.000000" right="1070.000000" hasFile="bg_tile.png" index="5"/>
</LayerGroup>
Can send you my PSD.
So, how I should get layer coords? I'm doing merge then calling the code in the beginning of the topic.