View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002952 | DarkRadiant | Design/Coding | public | 28.12.2011 19:07 | 11.10.2012 19:03 |
Reporter | snk | Assigned To | greebo | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | amd64 | OS | Debian GNU/Linux | OS Version | squeeze |
Product Version | 1.7.0 | ||||
Target Version | 1.8.0 | Fixed in Version | 1.8.0 | ||
Summary | 0002952: Can't move or resize brushes | ||||
Description | When I drag brushes, edges or vertices with the mouse pointer in grid view, I am not able to move anything. I tracked the problem down to revision 6418, where some Matrix4 methods where declared inline. This may be a compiler bug, but it renders DR useless for me. To resolve this problem I had to relocate the constructor method back into the .cpp file and remove the inline keyword. | ||||
Steps To Reproduce | - open DarkRadiant - create new brush by clicking and dragging the mouse pointer until a rectangle area appears - click the rectangle and drag the mouse pointer to move the brush => it won't move | ||||
Additional Information | Here is my buildlog/testlog: rev status -------------- 6812 Bug 6778 Bug 6665 Bug 6590 Bug 6589 Won't compile: math/quaternion.h: No such file or directory 6515 Won't compile: math/quaternion.h: No such file or directory 6483 Won't compile: math/quaternion.h: No such file or directory 6448 Won't compile: math/quaternion.h: No such file or directory 6436 Bug 6431 Bug 6424 Won't compile: BasicVector3<float>’ has no member named ‘getVector3’ 6422 Won't compile: ‘matrix4_premultiply_by_matrix4’ was not declared in this scope 6418 Bug 6417 OK 6416 OK 6391 OK | ||||
Tags | No tags attached. | ||||
Attached Files | matrix.patch (1,829 bytes)
Index: libs/math/Matrix4.h =================================================================== --- libs/math/Matrix4.h (revision 6819) +++ libs/math/Matrix4.h (working copy) @@ -712,30 +712,6 @@ // Inlined member definitions // ========================================================================================= -// Main explicit constructor (private) -inline Matrix4::Matrix4(float xx_, float xy_, float xz_, float xw_, - float yx_, float yy_, float yz_, float yw_, - float zx_, float zy_, float zz_, float zw_, - float tx_, float ty_, float tz_, float tw_) -{ - xx() = xx_; - xy() = xy_; - xz() = xz_; - xw() = xw_; - yx() = yx_; - yy() = yy_; - yz() = yz_; - yw() = yw_; - zx() = zx_; - zy() = zy_; - zz() = zz_; - zw() = zw_; - tx() = tx_; - ty() = ty_; - tz() = tz_; - tw() = tw_; -} - // Construct a matrix with given column elements inline Matrix4 Matrix4::byColumns(float xx, float xy, float xz, float xw, float yx, float yy, float yz, float yw, Index: libs/math/Matrix4.cpp =================================================================== --- libs/math/Matrix4.cpp (revision 6819) +++ libs/math/Matrix4.cpp (working copy) @@ -20,6 +20,30 @@ } } +// Main explicit constructor (private) +Matrix4::Matrix4(float xx_, float xy_, float xz_, float xw_, + float yx_, float yy_, float yz_, float yw_, + float zx_, float zy_, float zz_, float zw_, + float tx_, float ty_, float tz_, float tw_) +{ + xx() = xx_; + xy() = xy_; + xz() = xz_; + xw() = xw_; + yx() = yx_; + yy() = yy_; + yz() = yz_; + yw() = yw_; + zx() = zx_; + zy() = zy_; + zz() = zz_; + zw() = zw_; + tx() = tx_; + ty() = ty_; + tz() = tz_; + tw() = tw_; +} + // Named constructors // Identity matrix | ||||
Since this single constructor inlining won't make much of a difference performance-wise, I'll just go ahead and commit your patch if it fixes your problems. It might be cool to know why this has so drastic impacts on your specific architecture. Which exact gcc version are you using, for the records? |
|
Thanks for your quick response. It says gcc (Debian 4.4.5-8) 4.4.5 | |
Date Modified | Username | Field | Change |
---|---|---|---|
28.12.2011 19:07 | snk | New Issue | |
28.12.2011 19:07 | snk | File Added: matrix.patch | |
28.12.2011 19:32 | greebo | Assigned To | => greebo |
28.12.2011 19:32 | greebo | Status | new => assigned |
28.12.2011 19:38 | greebo | Note Added: 0004213 | |
28.12.2011 19:38 | greebo | Status | assigned => resolved |
28.12.2011 19:38 | greebo | Fixed in Version | => 1.8.0 |
28.12.2011 19:38 | greebo | Resolution | open => fixed |
28.12.2011 19:38 | greebo | Target Version | => 1.8.0 |
29.12.2011 08:05 | snk | Note Added: 0004214 | |
11.10.2012 19:03 | greebo | Status | resolved => closed |