summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-02-13 18:06:53 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-02-13 18:06:53 -0300
commitb607687a3182ef2fa9955d71abe86b31bdc1f99f (patch)
tree388b6fa3c4ee2a38114208d8f8faab751ae23361
parent58cda02a389759d18176216c06f375d364cefef1 (diff)
parent4ff524b5c9227d0eeae2a8d9761add7465c03710 (diff)
Merge branch 'master' of https://github.com/okamstudio/godot
-rw-r--r--README.md27
-rw-r--r--core/math/math_funcs.h4
-rw-r--r--logo.pngbin0 -> 3682 bytes
-rw-r--r--platform/osx/os_osx.mm4
-rw-r--r--platform/windows/detect.py7
-rw-r--r--scene/2d/camera_2d.cpp24
-rw-r--r--scene/2d/camera_2d.h4
-rw-r--r--scene/gui/tree.cpp2
-rw-r--r--tools/editor/io_plugins/editor_font_import_plugin.cpp2
9 files changed, 65 insertions, 9 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..c3813a360f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+![GODOT](/logo.png)
+
+### The Engine
+
+Godot is a fully featured, open source, MIT licensed, game engine. It focuses on having great tools, and a visual oriented workflow that can export to PC, Mobile and Web platforms with no hassle.
+The editor, language and APIs are feature rich, yet simple to learn, allowing you to become productive in a matter of hours.
+
+### About
+
+Godot has been developed by Juan Linietsky and Ariel Manzur for several years, and was born as an in-house engine, used to publish several work-for-hire titles.
+Development is sponsored by OKAM Studio (http://www.okamstudio.com).
+
+### Godot is BETA. Collaborate!!
+
+Having been developed as in-house means that the user experience may still not be ideal for everyone. The features needed to make a great game are there, but we really need your help to fix all the rough edges and improve usability (via feedback and/or code contributions).
+We know we are close to having an awesome, open source, game engine with nothing to envy from the best commercial offerings, but we can't do this alone. This is why Godot is now open source, so everyone can help us reach this goal.
+
+### Binary Downloads, Documentation, Community, etc.
+
+Binary downloads, documentation, community, etc. can be found in Godot homepage:
+
+http://www.godotengine.org
+
+### Compiling from Source
+
+Compilation instructions for every platform can be found in the Wiki:
+http://www.godotengine.org/wiki/doku.php?id=advanced
diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h
index 6a60a7f790..c98a088912 100644
--- a/core/math/math_funcs.h
+++ b/core/math/math_funcs.h
@@ -136,7 +136,7 @@ public:
static int b;
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1800
__asm fld a
__asm fistp b
/*#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
@@ -148,7 +148,7 @@ public:
: "=m" (b)
: "m" (a));*/
#else
- b=lrintf(a); //assuming everything but msvc has lrint
+ b=lrintf(a); //assuming everything but msvc 2012 or earlier has lrint
#endif
return b;
}
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000000..affc21cf84
--- /dev/null
+++ b/logo.png
Binary files differ
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 5be46e4843..c692a296e5 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -378,8 +378,8 @@ static int button_mask=0;
prev_mouse_y=mouse_y;
const NSRect contentRect = [OS_OSX::singleton->window_view frame];
const NSPoint p = [event locationInWindow];
- mouse_x = p.x;
- mouse_y = contentRect.size.height - p.y;
+ mouse_x = p.x * [[event window] backingScaleFactor];
+ mouse_y = (contentRect.size.height - p.y) * [[event window] backingScaleFactor];
ev.mouse_motion.x=mouse_x;
ev.mouse_motion.y=mouse_y;
ev.mouse_motion.global_x=mouse_x;
diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index 490f048f26..b8b0509da7 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -84,6 +84,7 @@ def configure(env):
env.Append(CCFLAGS=['/O2'])
env.Append(LINKFLAGS=['/SUBSYSTEM:WINDOWS'])
+ env.Append(LINKFLAGS=['/ENTRY:mainCRTStartup'])
elif (env["target"]=="test"):
@@ -92,8 +93,9 @@ def configure(env):
elif (env["target"]=="debug"):
- env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO','/O1'])
+ env.Append(CCFLAGS=['/Zi','/DDEBUG_ENABLED','/DD3D_DEBUG_INFO','/O1'])
env.Append(LINKFLAGS=['/SUBSYSTEM:CONSOLE'])
+ env.Append(LINKFLAGS=['/DEBUG'])
elif (env["target"]=="profile"):
@@ -113,8 +115,7 @@ def configure(env):
env.Append(CCFLAGS=['/DGLES1_ENABLED'])
env.Append(CCFLAGS=['/DGLEW_ENABLED'])
env.Append(LIBS=['winmm','opengl32','dsound','kernel32','ole32','user32','gdi32','wsock32'])
- env.Append(LINKFLAGS=['/DEBUG'])
-
+
env.Append(LIBPATH=[os.getenv("WindowsSdkDir")+"/Lib"])
if (os.getenv("DXSDK_DIR")):
DIRECTX_PATH=os.getenv("DXSDK_DIR")
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp
index 1920ce0081..acae3e62c4 100644
--- a/scene/2d/camera_2d.cpp
+++ b/scene/2d/camera_2d.cpp
@@ -134,6 +134,11 @@ Matrix32 Camera2D::get_camera_transform() {
Point2 screen_offset = (centered ? (screen_size * 0.5 * zoom) : Point2());;
screen_offset+=offset;
+ float angle = get_global_transform().get_rotation();
+ if(rotating){
+ screen_offset = screen_offset.rotated(angle);
+ }
+
Rect2 screen_rect(-screen_offset+ret_camera_pos,screen_size);
if (screen_rect.pos.x + screen_rect.size.x > limit[MARGIN_RIGHT])
screen_rect.pos.x = limit[MARGIN_RIGHT] - screen_rect.size.x;
@@ -151,6 +156,9 @@ Matrix32 Camera2D::get_camera_transform() {
camera_screen_center=screen_rect.pos+screen_rect.size*0.5;
Matrix32 xform;
+ if(rotating){
+ xform.set_rotation(angle);
+ }
xform.scale_basis(zoom);
xform.set_origin(screen_rect.pos/*.floor()*/);
@@ -251,6 +259,17 @@ bool Camera2D::is_centered() const {
return centered;
}
+void Camera2D::set_rotating(bool p_rotating){
+
+ rotating=p_rotating;
+ _update_scroll();
+}
+
+bool Camera2D::is_rotating() const {
+
+ return rotating;
+}
+
void Camera2D::_make_current(Object *p_which) {
@@ -394,6 +413,9 @@ void Camera2D::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_centered","centered"),&Camera2D::set_centered);
ObjectTypeDB::bind_method(_MD("is_centered"),&Camera2D::is_centered);
+ ObjectTypeDB::bind_method(_MD("set_rotating","rotating"),&Camera2D::set_rotating);
+ ObjectTypeDB::bind_method(_MD("is_rotating"),&Camera2D::is_rotating);
+
ObjectTypeDB::bind_method(_MD("make_current"),&Camera2D::make_current);
ObjectTypeDB::bind_method(_MD("_make_current"),&Camera2D::_make_current);
@@ -436,6 +458,7 @@ void Camera2D::_bind_methods() {
ADD_PROPERTYNZ( PropertyInfo(Variant::VECTOR2,"offset"),_SCS("set_offset"),_SCS("get_offset"));
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"centered"),_SCS("set_centered"),_SCS("is_centered"));
+ ADD_PROPERTY( PropertyInfo(Variant::BOOL,"rotating"),_SCS("set_rotating"),_SCS("is_rotating"));
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"current"),_SCS("_set_current"),_SCS("is_current"));
ADD_PROPERTY( PropertyInfo(Variant::REAL,"smoothing"),_SCS("set_follow_smoothing"),_SCS("get_follow_smoothing") );
ADD_PROPERTY( PropertyInfo(Variant::VECTOR2,"zoom"),_SCS("set_zoom"),_SCS("get_zoom") );
@@ -462,6 +485,7 @@ Camera2D::Camera2D() {
centered=true;
+ rotating=false;
current=false;
limit[MARGIN_LEFT]=-10000000;
limit[MARGIN_TOP]=-10000000;
diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h
index 9d06df2d1b..116169cac1 100644
--- a/scene/2d/camera_2d.h
+++ b/scene/2d/camera_2d.h
@@ -50,6 +50,7 @@ protected:
Vector2 offset;
Vector2 zoom;
bool centered;
+ bool rotating;
bool current;
float smoothing;
int limit[4];
@@ -79,6 +80,9 @@ public:
void set_centered(bool p_centered);
bool is_centered() const;
+ void set_rotating(bool p_rotating);
+ bool is_rotating() const;
+
void set_limit(Margin p_margin,int p_limit);
int get_limit(Margin p_margin) const;
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index ca6a1e812e..9be3c97901 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -1575,7 +1575,7 @@ int Tree::propagate_mouse_event(const Point2i &p_pos,int x_ofs,int y_ofs,bool p_
} else {
editor_text=String::num( p_item->cells[col].val, Math::decimals( p_item->cells[col].step ) );
- bring_up_value_editor=true;
+ bring_up_value_editor=false;
if (select_mode==SELECT_MULTI && get_scene()->get_last_event_id() == focus_in_id)
bring_up_editor=false;
diff --git a/tools/editor/io_plugins/editor_font_import_plugin.cpp b/tools/editor/io_plugins/editor_font_import_plugin.cpp
index d64a2fd42a..7c38b105fd 100644
--- a/tools/editor/io_plugins/editor_font_import_plugin.cpp
+++ b/tools/editor/io_plugins/editor_font_import_plugin.cpp
@@ -439,7 +439,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
}
if (dest->get_line_edit()->get_text()=="") {
- error_dialog->set_text("No tatget font resource!");
+ error_dialog->set_text("No target font resource!");
error_dialog->popup_centered(Size2(200,100));
return;
}