LINUX.ORG.RU

Сообщения Int64

 

Предупреждение при удалении элемента

Форум — Development

Есть такой вот код:

...
std::map<int, UIElement*> elements;
...
void UIManager::deleteElement (UIElement *el) {

	elements[el->id] = nullptr;
	delete el;

}

Почему вылетает предупреждение, и опасно ли оно?

src/ui/manager.cpp:46:2: warning: delete called on 'UIElement' that has virtual
      functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
        delete el;

 

Int64
()

Krita платная?

Форум — Desktop

Всем привет, зашел вот в стим, и увидел что там есть Krita, и там она стоит 899р, и Lifetime Upgrades стоит 1899р. Зашел на сайт krita.org и ничего такого не нашел там, я запутался.

 

Int64
()

Мой проект e2dit, помогите советом

Форум — Development

Всем привет, недавно выкладывал скриншот: Мой редактор уровней, в разработке
выложил исходный код: https://github.com/sysint64/e2dit.git

Очевидно что и код, и структура мягко говоря не очень, решил переоформить все, сделать сборку через cmake итд. И так как хочется все красиво сделать, хотелось бы совета у сообщества.
Сейчас начал новую структуру накидывать и получилось как-то так:

src/
   core/{*.h,*.cpp}
   math/{*.h,*.cpp}
   renderer/{*.h,*.cpp}
   system/{*.h,*.cpp}
   ui/{*.h,*.cpp}
res/
   ui/
   strings/

Пока так, там будет расширяться, ну и в данный момент у меня в основном файле у меня просто ужас:
#define GLEW_STATIC
#define GLM_FORCE_RADIANS
#define GLM_SWIZZLE
//#define GLM_FORCE_AVX for x86_64
#define GLM_FORCE_INLINE
#define GLM_FORCE_PURE

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/matrix_access.hpp>
#include <glm/gtx/fast_square_root.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <glm/gtc/quaternion.hpp>
#include <glm/gtx/vector_angle.hpp>
//

#include "GL/glew.h"
//#include "GL/wglew.h"

#ifdef _win_
	#include "windows.h"
#endif
//
#include <string>
#include <vector>
#include <stack>
#include <map>
#include <math.h>
#include <stdexcept>
#include <clocale>
#include <locale>
#include <iconv.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>

#ifdef _linux_
	#include <mntent.h>
#endif

#include <unistd.h>
//
using namespace std;
//
void Terminate (const int type);
//
#include "Engine/Logger.h"

#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <SFML/OpenGL.hpp>
//#include <SFML/Window/Mouse.hpp>

#include <iostream>
#include <pthread.h>

#include <SOIL/SOIL.h>
#include <FTGL/ftgl.h>

Решил начать с этого, как лучше все это по папкам распихать, думал все инклуды с glm перенести в math/main.h но может не лучшее решение. Так же думал все инклуды из std вынести в какойнить файл, например в system/main.h. Хотелось бы услышать ваши идеи и предпочтения.

 ,

Int64
()

Мой редактор уровней, в разработке

Галерея — Скриншоты

Пишу вот редактор уровней, Tiled мне оказалось мало, решил сделать что-то более сложное, чтобы можно было расставлять объекты как угодно, возможность создавать тайловые карты, менять топологию объектов (например чтобы сделать красивый блоб), назначать классы, менять ограничивающие полигоны, настраивать анимацию, ну и базовые деформации (хотя возможно их и не будет), так же хотелось сделать обрезание объектов, если слишком большой, чтобы не рисовать 2 разные текстуры, можно просто обрезать топологию.

Да дизайн похож на блендеровский, и не с проста, я ориентировался на бледеровский интерфейс, иконки тоже от туда взяты, со временем конечно придется их перерисовать. Так же позаимствовал панельку сверху тоже из идею нового UI для блендера. К сожалению толком своего ничего придумать не могу, а программа нужна, ну и интересно было ее поделать и реализовать интерфейс полностью на OpenGL.

Сейчас программа активно используется мною, для создани игры на Haxe, написал простой фреймворк для загрузки карт созданных в этом редакторе для него, в будущем будет еще и C++. Для меня программа оказалась очень даже полезной )

В будущем хочу сделать открытый доступ к программе, но не уверен что буду открывать исходники, т.к. скажу честно, боюсь критики )) И самое наверное элементарное здесь, что я не через makefile сделал, а через башскрипты, и один файл main.cpp инклудит все заголовочные файлы и исходный код! Я до этого много работал на дельфи, и пересел на C++ года 2 назад, и когда уже было очень многое написано, я только понял что я налажал, но уже поздно, а все переписывать не очень хочется.
Еще скриншоты:
http://habrastorage.org/files/7b3/c85/958/7b3c85958c004fafbd1200b9aab3abc7.png
http://habrastorage.org/files/f1b/c5e/62a/f1bc5e62a6ea4967abcb5940d0b9e6c5.png
http://habrastorage.org/files/1bf/504/3a4/1bf5043a42c444ba84f5b4c64614ba1f.png

А раньше он выглядел вот так:
http://habrastorage.org/files/667/d86/820/667d86820eb4476ab90bc2e3fd4895c2.png

Виде игры которую я делаю на Haxe, только приступил к работе:
http://www.youtube.com/watch?x-yt-ts=1421828030&x-yt-cl=84411374&v=CO...

 ,

Int64
()

Использовать GPL в коммерческом проекте

Форум — General

Возможно ли это? я почти доделал программу, и хочу выпускать ее под лицензией GPL, и делаю другой проект, и мне необходимо, чтобы этот коммерческий проект мог поставляться вместе с первым GPL'овским проектом. Может просто в установщик сделать пункт : «Установить программу с GPL лицензией?», и если выбран этот пункт, то выкачивать из интернета установщик программы GPL и запускать, и вроде как бы и не нарушаю тогда условия GPL, или все таки нарушаю?

 , ,

Int64
()

Реализация Undo, Redo

Форум — Development

Всем привет, как грамотно реализовать Undo и Redo в программе, где много различных параметров меняется, я думал отслеживать каждый шаг пользователя и записывать в историю, для каждого пункта истории сделать функции Undo и Redo, но тут получается для каждого определенного действия придется наследовать общий класс какой-то, например для удаления объекта, наследуем класс BaseHistoryElement и переписываем функции Undo, Redo в Undo меняем флаг deleted = false; ну и для Redo собственно наоборот. Но с таким подходом очень много кода выйдет для каждого действия, вот и интересно, может есть какой-то более правильный подход?

 

Int64
()

Unreal Engine 4.5 Native Editor

Галерея — Скриншоты

Вот купил UE4, решил попробовать скомпилировать под Linux редактор, собственно успешно! Первый раз не получилось скомпилировать, выдавало ошибку, использовал clang 3.4, решил попробовать использовать clang 3.5, не ожидал что заработает, но заработало )) В принципе работает нормально, правда интефейс глючит, а вот сама графика работает довольно быстро.

 

Int64
()

Восстановление данных с SSD

Форум — Linux-hardware

Всем привет, случайно отформатировал диск на котором операционная система, отформатировал быстро, т.е. удалил только таблицу, можно ли полностью все восстановить, и чтобы операционка тоже заработала?

Int64
()

SFML 2.1 Maximize

Форум — Development

Нужно создать окно в развернутом виде, как это сделать? На офф. сайте ничего не нашел.

 ,

Int64
()

Отключить оптимизации для функции

Форум — Development

Всем привет, при компиляции с флагом -O0 программа работает идеально, стоит добавить -O1 функция проверки пересечения 2х прямых перестает работать, можно ли отключить оптимизации для этой функции? Код функции:

#define EPS 0.00001f

bool Intersect (glm::vec2 A, glm::vec2 B) {
		glm::vec2 p1 = v1->Pos;
		glm::vec2 p2 = v2->Pos;
		//
		float rTop = (A.y-p1.y)*(p2.x-p1.x)-(A.x-p1.x)*(p2.y-p1.y);
		float sTop = (A.y-p1.y)*(B.x-A.x)-(A.x-p1.x)*(B.y-A.y);
		float rBot = (B.x-A.x)*(p2.y-p1.y)-(B.y-A.y)*(p2.x-p1.x);
		float sBot = (B.x-A.x)*(p2.y-p1.y)-(B.y-A.y)*(p2.x-p1.x);
		//
		if (rBot == 0 || sBot == 0)
			return false;
		//
		float r = rTop/rBot;
		float s = sTop/sBot;

		if (r > EPS && r < 1.0f-EPS && s > EPS && s < 1.0f-EPS)
			return true;

		return false;
	}

есть еще другая функция, через скалярное произведение векторов, но для моей задачи она иногда работает не точно, а эта функция всегда хорошо определяла, есть ли пересечение, или нету.

 ,

Int64
()

Какую клавиатуру лучше взять

Форум — Talks

Всем привет, сломалось у меня клавиатура, не знаю теперь какую взять, хотел взять точно такую же как была, но нигде не нашел ее. Плоские клавиатуры очень не люблю, поэтому сейчас остановился на вот этих двух:
http://www.microsoft.com/hardware/en-us/b/sculpt-comfort-keyboard-for-business
http://www.microsoft.com/hardware/en-us/p/natural-ergonomic-keyboard-4000/B2M...

обязательно нужна эргономичная клавиатура, вот не знаю, на сколько будет удобная первая, боюсь ее брать, а на второй уже работал, и в принципе привыкнуть можно к ней.

Int64
()

парсинг смайлов

Форум — Web-development

Всем привет, возникла такая проблема, создал форум на phpbb3, но там оказалась проблема со смайликами, только один смайл парсится, остальные остаются в виде кода смайла, после перехода на новую строку смайлик снова парсится. Выяснил что ошибка где-то в этой функции, но т.к. я с регулярными выражениями умею работать только в текстовом редакторе, для поиска, то нужна ваша помощь:

	/**
	* Parse Smilies
	*/
	function smilies($max_smilies = 0)
	{
		global $db, $user;
		static $match;
		static $replace;

		// See if the static arrays have already been filled on an earlier invocation
		if (!is_array($match))
		{
			$match = $replace = array();

			// NOTE: obtain_* function? chaching the table contents?

			// For now setting the ttl to 10 minutes
			switch ($db->sql_layer)
			{
				case 'mssql':
				case 'mssql_odbc':
				case 'mssqlnative':
					$sql = 'SELECT *
						FROM ' . SMILIES_TABLE . '
						ORDER BY LEN(code) DESC';
				break;

				case 'firebird':
					$sql = 'SELECT *
						FROM ' . SMILIES_TABLE . '
						ORDER BY CHAR_LENGTH(code) DESC';
				break;

				// LENGTH supported by MySQL, IBM DB2, Oracle and Access for sure...
				default:
					$sql = 'SELECT *
						FROM ' . SMILIES_TABLE . '
						ORDER BY LENGTH(code) DESC';
				break;
			}
			$result = $db->sql_query($sql, 600);

			while ($row = $db->sql_fetchrow($result))
			{
				if (empty($row['code']))
				{
					continue;
				}

				// (assertion)
				$match[] = preg_quote($row['code'], '#');
				$replace[] = '<!-- s' . $row['code'] . ' --><img src="{SMILIES_PATH}/' . $row['smiley_url'] . '" alt="' . $row['code'] . '" title="' . $row['emotion'] . '" /><!-- s' . $row['code'] . ' -->';
			}
			$db->sql_freeresult($result);
		}

		if (sizeof($match))
		{
			if ($max_smilies)
			{
				// 'u' modifier has been added to correctly parse smilies within unicode strings
				// For details: http://tracker.phpbb.com/browse/PHPBB3-10117
				$num_matches = preg_match_all('#(?<=^|[\n .])(?:' . implode('|', $match) . ')(?![^<>]*>)#u', $this->message, $matches);
				unset($matches);

				if ($num_matches !== false && $num_matches > $max_smilies)
				{
					$this->warn_msg[] = sprintf($user->lang['TOO_MANY_SMILIES'], $max_smilies);
					return;
				}
			}

			// Make sure the delimiter # is added in front and at the end of every element within $match
			// 'u' modifier has been added to correctly parse smilies within unicode strings
			// For details: http://tracker.phpbb.com/browse/PHPBB3-10117

			$this->message = trim(preg_replace(explode(chr(0), '#(?<=^|[\n .])' . implode('(?![^<>]*>)#u' . chr(0) . '#(?<=^|[\n .])', $match) . '(?![^<>]*>)#u'), $replace, $this->message));
		}
	}

Int64
()

Свой менеджер памяти

Форум — Development

Всем привет, ради интереса решил написать свой язык программирования, почти доделал, вот теперь решил сделать менеджер памяти для выделения памяти динамическим массивам и классам. Я написал пулловый аллокатор, но не совсем понятно как правильно пользоваться им, у меня есть буфер, в который записываются данные, и у каждого буфера размер чанка фиксированный, я думал сделать размер одного буфера равной размеру одной страницы, но не уверен что так правильно, ну и в зависимости от того, сколько нужно памяти, выбирается нужный буфер. Размеры чанков хочу менять по логарифмической шкале. Ну так вот вопрос в том, правильно ли я все понял?

 

Int64
()

G++ отключение ошибок

Форум — Development

Нужно чтобы при первой же ошибки компиляция завершалась, а не продолжала бы выдавать кучу ошибок, возможно ли это в g++?

 

Int64
()

css с макросами (забыл название)

Форум — Web-development

Всем привет, давно читал статью на хабре про какую-то новую каскадную таблицу стилей, тот же css только с макросами, хочу вот опробовать его, а название забыл.

 

Int64
()

С++ для мобильных платформ

Форум — Development

Всем привет, читал где-то что можно использовать С++ для написания мобильных приложений, вот вопросы которые мне интересны:
на iOS так же можно писать на С++?
если да то как сильно код будет отличаться от кода для андроида?
какие библиотеки стоит использовать для мобилок, помимо OpenGL ES, например для воспроизведения звука, для кроссплатформенного управления мултитачем, для физики?
ну и самое главное, как скомпилировать для андроид и для iOS приложение?

Int64
()

формы submit

Форум — Web-development

Как сделать чтобы при отправке запроса на форме ничего не происходило? чтобы никуда не перенаправлялось, пытался делать что-то подобное:

<form id = 'login_form' action = '#'>
...
но все равно отправляет запрос.

Int64
()

По поводу лицензий

Форум — General

Подскажите пожалуйста, могу ли я распространять свой софт под лицензией FreeBSD, если в нем присутствуют некоторые бинарные файлы, которые распространяются под лицензией GPL? и еще такой вопрос, могу ли я некоторые иконки взять из Blender, если опять же моя программа будет распространяться под лицензией FreeBSD?

 , ,

Int64
()

Светлый Blender

Галерея — Скриншоты

Собственно не кубик )) В светлом блендере работать очень приятно. Перехожу с Maya, и для себя открыл, что в блендере даже удобнее работать, если настроить под себя, а инструменты для моделирования вообще очень понравились, в Maya 8.5 таких не было (не знаю как на счет Maya 2014). И открыл для себя отличный плагин F2: http://blenderartists.org/forum/showthread.php?278787-F2 Надеюсь инструменты для анимации меня так же порадуют :)

 , ,

Int64
()

Цифровые аудио студии

Форум — General

Всем привет, хочу попробовать писать свою музыку, какую для этого программу лучше использовать, раньше никогда не пробовал писать музыку, только на гитаре что-то могу по сочинять, так что считай с чистого листа все начну ) ну и где можно найти хорошие лупы и различные инструменты

 

Int64
()

RSS подписка на новые темы