Changeset 1429


Ignore:
Timestamp:
May 31, 2012, 1:33:23 PM (8 years ago)
Author:
sam
Message:

orbital: fix a bug in the hex color interpreter.

Location:
trunk/orbital
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/orbital/generated/mesh-parser.cpp

    r1428 r1429  
    495495/* Line 690 of lalr1.cc  */
    496496#line 95 "mesh-parser.y"
    497     { uint32_t x = (uint32_t)(yysemantic_stack_[(2) - (2)].fval);
    498                       u8vec4 v;
    499                       memcpy(&v, &x, sizeof(x));
     497    { uint16_t x = (uint16_t)(yysemantic_stack_[(2) - (2)].fval);
     498                      vec4 v(x >> 12, (x >> 8) & 0xf, (x >> 4) & 0xf, x & 0xf);
    500499                      mc.m_mesh.SetCurColor(vec4(v) * (0.1 / 15)); }
    501500    break;
     
    504503
    505504/* Line 690 of lalr1.cc  */
     505#line 98 "mesh-parser.y"
     506    { mc.m_mesh.SetCurColor2(vec4((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
     507    break;
     508
     509  case 15:
     510
     511/* Line 690 of lalr1.cc  */
    506512#line 99 "mesh-parser.y"
    507     { mc.m_mesh.SetCurColor2(vec4((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
    508     break;
    509 
    510   case 15:
    511 
    512 /* Line 690 of lalr1.cc  */
    513 #line 100 "mesh-parser.y"
    514     { uint32_t x = (uint32_t)(yysemantic_stack_[(2) - (2)].fval);
    515                       u8vec4 v;
    516                       memcpy(&v, &x, sizeof(x));
     513    { uint16_t x = (uint16_t)(yysemantic_stack_[(2) - (2)].fval);
     514                      vec4 v(x >> 12, (x >> 8) & 0xf, (x >> 4) & 0xf, x & 0xf);
    517515                      mc.m_mesh.SetCurColor(vec4(v) * (0.1 / 15)); }
    518516    break;
     
    521519
    522520/* Line 690 of lalr1.cc  */
     521#line 105 "mesh-parser.y"
     522    { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, 0, 0)); }
     523    break;
     524
     525  case 17:
     526
     527/* Line 690 of lalr1.cc  */
     528#line 106 "mesh-parser.y"
     529    { mc.m_mesh.Translate(vec3(0, (yysemantic_stack_[(2) - (2)].args).f0, 0)); }
     530    break;
     531
     532  case 18:
     533
     534/* Line 690 of lalr1.cc  */
    523535#line 107 "mesh-parser.y"
    524     { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, 0, 0)); }
    525     break;
    526 
    527   case 17:
     536    { mc.m_mesh.Translate(vec3(0, 0, (yysemantic_stack_[(2) - (2)].args).f0)); }
     537    break;
     538
     539  case 19:
    528540
    529541/* Line 690 of lalr1.cc  */
    530542#line 108 "mesh-parser.y"
    531     { mc.m_mesh.Translate(vec3(0, (yysemantic_stack_[(2) - (2)].args).f0, 0)); }
    532     break;
    533 
    534   case 18:
     543    { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
     544    break;
     545
     546  case 20:
    535547
    536548/* Line 690 of lalr1.cc  */
    537549#line 109 "mesh-parser.y"
    538     { mc.m_mesh.Translate(vec3(0, 0, (yysemantic_stack_[(2) - (2)].args).f0)); }
    539     break;
    540 
    541   case 19:
     550    { mc.m_mesh.RotateX((yysemantic_stack_[(2) - (2)].args).f0); }
     551    break;
     552
     553  case 21:
    542554
    543555/* Line 690 of lalr1.cc  */
    544556#line 110 "mesh-parser.y"
    545     { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    546     break;
    547 
    548   case 20:
     557    { mc.m_mesh.RotateY((yysemantic_stack_[(2) - (2)].args).f0); }
     558    break;
     559
     560  case 22:
    549561
    550562/* Line 690 of lalr1.cc  */
    551563#line 111 "mesh-parser.y"
    552     { mc.m_mesh.RotateX((yysemantic_stack_[(2) - (2)].args).f0); }
    553     break;
    554 
    555   case 21:
     564    { mc.m_mesh.RotateZ((yysemantic_stack_[(2) - (2)].args).f0); }
     565    break;
     566
     567  case 23:
    556568
    557569/* Line 690 of lalr1.cc  */
    558570#line 112 "mesh-parser.y"
    559     { mc.m_mesh.RotateY((yysemantic_stack_[(2) - (2)].args).f0); }
    560     break;
    561 
    562   case 22:
     571    { mc.m_mesh.TaperX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
     572    break;
     573
     574  case 24:
    563575
    564576/* Line 690 of lalr1.cc  */
    565577#line 113 "mesh-parser.y"
    566     { mc.m_mesh.RotateZ((yysemantic_stack_[(2) - (2)].args).f0); }
    567     break;
    568 
    569   case 23:
     578    { mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
     579    break;
     580
     581  case 25:
    570582
    571583/* Line 690 of lalr1.cc  */
    572584#line 114 "mesh-parser.y"
    573     { mc.m_mesh.TaperX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    574     break;
    575 
    576   case 24:
     585    { mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
     586    break;
     587
     588  case 26:
    577589
    578590/* Line 690 of lalr1.cc  */
    579591#line 115 "mesh-parser.y"
    580     { mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    581     break;
    582 
    583   case 25:
     592    { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, 0, 0)); }
     593    break;
     594
     595  case 27:
    584596
    585597/* Line 690 of lalr1.cc  */
    586598#line 116 "mesh-parser.y"
    587     { mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    588     break;
    589 
    590   case 26:
     599    { mc.m_mesh.Scale(vec3(0, (yysemantic_stack_[(2) - (2)].args).f0, 0)); }
     600    break;
     601
     602  case 28:
    591603
    592604/* Line 690 of lalr1.cc  */
    593605#line 117 "mesh-parser.y"
    594     { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, 0, 0)); }
    595     break;
    596 
    597   case 27:
     606    { mc.m_mesh.Scale(vec3(0, 0, (yysemantic_stack_[(2) - (2)].args).f0)); }
     607    break;
     608
     609  case 29:
    598610
    599611/* Line 690 of lalr1.cc  */
    600612#line 118 "mesh-parser.y"
    601     { mc.m_mesh.Scale(vec3(0, (yysemantic_stack_[(2) - (2)].args).f0, 0)); }
    602     break;
    603 
    604   case 28:
     613    { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
     614    break;
     615
     616  case 30:
    605617
    606618/* Line 690 of lalr1.cc  */
    607619#line 119 "mesh-parser.y"
    608     { mc.m_mesh.Scale(vec3(0, 0, (yysemantic_stack_[(2) - (2)].args).f0)); }
    609     break;
    610 
    611   case 29:
     620    { mc.m_mesh.MirrorX(); }
     621    break;
     622
     623  case 31:
    612624
    613625/* Line 690 of lalr1.cc  */
    614626#line 120 "mesh-parser.y"
    615     { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    616     break;
    617 
    618   case 30:
     627    { mc.m_mesh.MirrorY(); }
     628    break;
     629
     630  case 32:
    619631
    620632/* Line 690 of lalr1.cc  */
    621633#line 121 "mesh-parser.y"
    622     { mc.m_mesh.MirrorX(); }
    623     break;
    624 
    625   case 31:
    626 
    627 /* Line 690 of lalr1.cc  */
    628 #line 122 "mesh-parser.y"
    629     { mc.m_mesh.MirrorY(); }
    630     break;
    631 
    632   case 32:
    633 
    634 /* Line 690 of lalr1.cc  */
    635 #line 123 "mesh-parser.y"
    636634    { mc.m_mesh.MirrorZ(); }
    637635    break;
     
    640638
    641639/* Line 690 of lalr1.cc  */
    642 #line 127 "mesh-parser.y"
     640#line 125 "mesh-parser.y"
    643641    { mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    644642                                                 (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
     
    649647
    650648/* Line 690 of lalr1.cc  */
    651 #line 130 "mesh-parser.y"
     649#line 128 "mesh-parser.y"
    652650    { mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    653651    break;
     
    656654
    657655/* Line 690 of lalr1.cc  */
    658 #line 131 "mesh-parser.y"
     656#line 129 "mesh-parser.y"
    659657    { mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    660658                                                            (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
     
    664662
    665663/* Line 690 of lalr1.cc  */
    666 #line 133 "mesh-parser.y"
     664#line 131 "mesh-parser.y"
    667665    { mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    668666                                                          (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
     
    672670
    673671/* Line 690 of lalr1.cc  */
    674 #line 135 "mesh-parser.y"
     672#line 133 "mesh-parser.y"
    675673    { mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0,
    676674                                               vec3((yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
     
    680678
    681679/* Line 690 of lalr1.cc  */
    682 #line 137 "mesh-parser.y"
     680#line 135 "mesh-parser.y"
    683681    { mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
    684682                                             (int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
     
    688686
    689687/* Line 690 of lalr1.cc  */
    690 #line 139 "mesh-parser.y"
     688#line 137 "mesh-parser.y"
    691689    { mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    692690                                                     (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
     
    696694
    697695/* Line 690 of lalr1.cc  */
     696#line 139 "mesh-parser.y"
     697    { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
     698    break;
     699
     700  case 41:
     701
     702/* Line 690 of lalr1.cc  */
     703#line 140 "mesh-parser.y"
     704    { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
     705    break;
     706
     707  case 42:
     708
     709/* Line 690 of lalr1.cc  */
    698710#line 141 "mesh-parser.y"
    699     { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
    700     break;
    701 
    702   case 41:
     711    { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
     712    break;
     713
     714  case 43:
    703715
    704716/* Line 690 of lalr1.cc  */
    705717#line 142 "mesh-parser.y"
    706     { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    707     break;
    708 
    709   case 42:
    710 
    711 /* Line 690 of lalr1.cc  */
    712 #line 143 "mesh-parser.y"
    713     { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    714     break;
    715 
    716   case 43:
    717 
    718 /* Line 690 of lalr1.cc  */
    719 #line 144 "mesh-parser.y"
    720718    { mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
    721719                                            (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6, (int)(yysemantic_stack_[(2) - (2)].args).f7); }
     
    725723
    726724/* Line 690 of lalr1.cc  */
     725#line 146 "mesh-parser.y"
     726    { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
     727    break;
     728
     729  case 45:
     730
     731/* Line 690 of lalr1.cc  */
     732#line 147 "mesh-parser.y"
     733    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(3) - (3)].fval); }
     734    break;
     735
     736  case 46:
     737
     738/* Line 690 of lalr1.cc  */
    727739#line 148 "mesh-parser.y"
    728     { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
    729     break;
    730 
    731   case 45:
     740    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(3) - (3)].fval); }
     741    break;
     742
     743  case 47:
    732744
    733745/* Line 690 of lalr1.cc  */
    734746#line 149 "mesh-parser.y"
    735     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(3) - (3)].fval); }
    736     break;
    737 
    738   case 46:
     747    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(3) - (3)].fval); }
     748    break;
     749
     750  case 48:
    739751
    740752/* Line 690 of lalr1.cc  */
    741753#line 150 "mesh-parser.y"
    742     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(3) - (3)].fval); }
    743     break;
    744 
    745   case 47:
     754    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(3) - (3)].fval); }
     755    break;
     756
     757  case 49:
    746758
    747759/* Line 690 of lalr1.cc  */
    748760#line 151 "mesh-parser.y"
    749     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(3) - (3)].fval); }
    750     break;
    751 
    752   case 48:
     761    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(3) - (3)].fval); }
     762    break;
     763
     764  case 50:
    753765
    754766/* Line 690 of lalr1.cc  */
    755767#line 152 "mesh-parser.y"
    756     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(3) - (3)].fval); }
    757     break;
    758 
    759   case 49:
     768    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(3) - (3)].fval); }
     769    break;
     770
     771  case 51:
    760772
    761773/* Line 690 of lalr1.cc  */
    762774#line 153 "mesh-parser.y"
    763     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(3) - (3)].fval); }
    764     break;
    765 
    766   case 50:
    767 
    768 /* Line 690 of lalr1.cc  */
    769 #line 154 "mesh-parser.y"
    770     { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(3) - (3)].fval); }
    771     break;
    772 
    773   case 51:
    774 
    775 /* Line 690 of lalr1.cc  */
    776 #line 155 "mesh-parser.y"
    777775    { (yyval.args) = (yysemantic_stack_[(3) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(3) - (3)].fval); }
    778776    break;
     
    781779
    782780/* Line 690 of lalr1.cc  */
    783 #line 158 "mesh-parser.y"
     781#line 156 "mesh-parser.y"
    784782    { (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
    785783    break;
     
    788786
    789787/* Line 690 of lalr1.cc  */
    790 #line 159 "mesh-parser.y"
     788#line 157 "mesh-parser.y"
    791789    { (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); }
    792790    break;
     
    795793
    796794/* Line 690 of lalr1.cc  */
    797 #line 798 "generated/mesh-parser.cpp"
     795#line 796 "generated/mesh-parser.cpp"
    798796        default:
    799797          break;
     
    12671265  {
    12681266         0,    72,    72,    76,    77,    81,    82,    83,    84,    88,
    1269       89,    90,    94,    95,    99,   100,   107,   108,   109,   110,
    1270      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
    1271      121,   122,   123,   127,   130,   131,   133,   135,   137,   139,
    1272      141,   142,   143,   144,   148,   149,   150,   151,   152,   153,
    1273      154,   155,   158,   159
     1267      89,    90,    94,    95,    98,    99,   105,   106,   107,   108,
     1268     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
     1269     119,   120,   121,   125,   128,   129,   131,   133,   135,   137,
     1270     139,   140,   141,   142,   146,   147,   148,   149,   150,   151,
     1271     152,   153,   156,   157
    12741272  };
    12751273
     
    13641362
    13651363/* Line 1136 of lalr1.cc  */
    1366 #line 1367 "generated/mesh-parser.cpp"
     1364#line 1365 "generated/mesh-parser.cpp"
    13671365
    13681366
    13691367/* Line 1138 of lalr1.cc  */
    1370 #line 162 "mesh-parser.y"
     1368#line 160 "mesh-parser.y"
    13711369
    13721370
  • trunk/orbital/mesh-parser.y

    r1428 r1429  
    9393color_command:
    9494    T_COLOR args4   { mc.m_mesh.SetCurColor(vec4($2.f0, $2.f1, $2.f2, $2.f3)); }
    95   | T_COLOR COLOR   { uint32_t x = (uint32_t)$2;
    96                       u8vec4 v;
    97                       memcpy(&v, &x, sizeof(x));
     95  | T_COLOR COLOR   { uint16_t x = (uint16_t)$2;
     96                      vec4 v(x >> 12, (x >> 8) & 0xf, (x >> 4) & 0xf, x & 0xf);
    9897                      mc.m_mesh.SetCurColor(vec4(v) * (0.1 / 15)); }
    9998  | T_BGCOLOR args4 { mc.m_mesh.SetCurColor2(vec4($2.f0, $2.f1, $2.f2, $2.f3)); }
    100   | T_BGCOLOR COLOR { uint32_t x = (uint32_t)$2;
    101                       u8vec4 v;
    102                       memcpy(&v, &x, sizeof(x));
     99  | T_BGCOLOR COLOR { uint16_t x = (uint16_t)$2;
     100                      vec4 v(x >> 12, (x >> 8) & 0xf, (x >> 4) & 0xf, x & 0xf);
    103101                      mc.m_mesh.SetCurColor(vec4(v) * (0.1 / 15)); }
    104102    ;
Note: See TracChangeset for help on using the changeset viewer.