View Issue Details

IDProjectCategoryView StatusLast Update
0002952DarkRadiantDesign/Codingpublic11.10.2012 19:03
Reportersnk Assigned Togreebo  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformamd64OSDebian GNU/LinuxOS Versionsqueeze
Product Version1.7.0 
Target Version1.8.0Fixed in Version1.8.0 
Summary0002952: Can't move or resize brushes
DescriptionWhen 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 InformationHere 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
TagsNo 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
matrix.patch (1,829 bytes)   

Activities

greebo

greebo

28.12.2011 19:38

administrator   ~0004213

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?
snk

snk

29.12.2011 08:05

reporter   ~0004214

Thanks for your quick response. It says gcc (Debian 4.4.5-8) 4.4.5

Issue History

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