Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - FoToN

Strony: [1] 2 3 4 5 ... 30
1
Tworzenie silników / Odp: Dodanie języka skryptowego do silnika.
« dnia: Wrzesień 05, 2015, 23:51:24 »
Ja polecam LuaJIT. Implementacja Lua z dodatkowym kompilatorem JIT oraz bardzo szybkim interpreterem. Dodatkowo ma FFI dzięki któremu eksport API silnika do skryptów jest bardzo prosty (łatwo można napisać skrypt, który będzie na podstawie kodu źródłowego generował cały łącznik skrypt <-> silnik).

2
Warsztat Summer of Code 2015 / Odp: Wieśmin: Dziki Samogon
« dnia: Lipiec 09, 2015, 22:42:37 »
@K.K. Mylisz się. Obie są na świnie i buractwo ;-)

3
Programowanie grafiki / Odp: SFML: Najbardziej optymalna animacja
« dnia: Wrzesień 28, 2014, 20:44:47 »
Możesz, po załadowaniu wszystkiego poza animacją, uruchomić oddzielny wątek, który będzie ją ładował. Następnie wyświetlać to co już jest (może się przycinać przy ładowaniu, ale za to szybciej gra się uruchomi). Mówię tylko ogólniki, bo w SFML nigdy nie programowałem.

I oczywiście tak jak @castro12321 napisał: pół minuty na wczytanie 20mb sugeruje jakiegoś faila w kodzie.

4
DirectX / Odp: [D3D11] Problem systemowy przy renderowaniu
« dnia: Styczeń 26, 2014, 16:38:40 »
Jaki masz system? Zdaje się, że na Win8 PIX nie działa tak jak powinien (crash to typowe zachowanie).

Odwołaniami do D3D10 raczej bym się nie martwił - API są w miarę podobne, a możliwe, że współdzielą część kodu dla różnych feature leveli.

[Edit] Spróbuj użyć debuggera grafiki wbudowanego w Visual Studio (http://msdn.microsoft.com/en-us/library/hh315751.aspx). On raczej powinien działać.

5
Szkółka / Odp: GLFW3 na VC 2010
« dnia: Styczeń 18, 2014, 19:43:59 »
MSVCR110.dll
Zainstaluj redisty visuala 2012.

Jest jakas wersja pod VS2010 ?
Z tego co widzę to w źródłach znajdują się pliki od cmake-a. Wygeneruj w nim pliki pod swojego visuala i skompiluj ręcznie.

6
DirectX / Odp: D3DDevice9.Present() dlaczego aż 3ms?
« dnia: Listopad 11, 2013, 15:30:10 »
Tu jest całkiem niezłe miejsce na użycie wątków (logika na jednym, rendering na drugim). Poza tym możesz skorzystać (o ile jeszcze nie korzystasz) z rady z SDK:
Cytuj
To enable maximal parallelism between the CPU and the graphics accelerator, it is advantageous to call IDirect3DDevice9::EndScene as far ahead of calling present as possible.

7
Szkółka / Odp: Przypisanie wskaźnika
« dnia: Sierpień 18, 2013, 20:10:50 »
Może this jest po prostu null-em? ;)

8
Serwis / Odp: Dodawanie wielu obrazków na raz
« dnia: Lipiec 30, 2013, 15:34:29 »
To może zablokować możliwość minusowania dla pustych kont? Generalnie dopóki ktoś czegoś sam nie stworzy, to może nie doceniać włożonej pracy.

9
Szkółka / Odp: [C++] vector a zwalnianie pamięci
« dnia: Lipiec 30, 2013, 15:27:40 »
W Visual Studio można to obejść korzystając z Immediate Window (w którym możemy zobaczyć wynik prawie każdego wyrażenia). Oprócz tego można dodać watch, które wyświetla nam na bieżąco wartość podanego wyrażenia.

Ogólnie polecam poszukać w google o trickach w debuggingu w visual studio (np. kojarzę że był jakiś sposób aby "powiedzieć" jak ma w podglądzie wyświetlać typy zdefiniowane przez użytkownika), bo są one przydatne, a większość użytkowników pewnie o nich nie wie (przypuszczam że ja nie wykorzystuję więcej niż 60-70% jego możliwości) ;)

10
DirectX / Odp: Jak przeglądać dane interfjesu ID3D11Buffer ?
« dnia: Lipiec 14, 2013, 23:15:42 »
Użyj ID3D11DeviceContext::Map. Jeśli mnie pamięć nie myli to trzeba teksturę tworzyć z odpowiednią flagą.

11
DirectX / Odp: Jak przeglądać dane interfjesu ID3D11Buffer ?
« dnia: Lipiec 14, 2013, 14:09:28 »
Możesz zrenderować scenę do tekstury (możesz użyć MRT, lub puścić kolejnego passa), gdzie kolor piksela będzie ID obiektu, który się tam znajduje. By dowiedzieć się jaki obiekt jest pod kursorem odczytujesz ID z tekstury.

12
Design / Odp: Szukam informaci o ToolTip
« dnia: Maj 18, 2013, 00:30:03 »
Nie mam żadnych materiałów na ten temat, ale wypowiem się jako użytkownik programów.

  • Gdy chcę zobaczyć tooltipa stawiam kursor na elemencie i go nie ruszam. Pojawianie się tooltipa gdy ruszam myszką potrafi być irytujące.
  • Optymalny dla mnie czas pojawienia się to 1-2 sekundy (bliżej 1). Nie chcę by tooltip pojawiał się przypadkiem, ani też na niego długo czekać.
  • Nieraz widuję tooltipa, który znika po pewnym czasie, mimo że nie ruszam myszką. IMHO powinien znikać dopiero gdy wyjadę myszką poza kontrolkę.
  • Jeśli zamierzasz wyświetlać w tooltipe więcej informacji niż kawałek tekstu, to daj możliwość focusu na niego. Czasem dobrze jest mieć możliwość skopiowania rzeczy w tooltipe, lub kliknięcie jakiegoś odnośnika (dobry przykład to IDE, gdzie po najechaniu na klasę chcę dać focus na tooltip, i np. otworzyć parę linków z dokumentacji).

Oczywiście wszystko zależy od zastosowania. Tooltipy przycisków w toolboxach powinno mieć krótką wiadomość i znikać nawet bez ruchu myszką. Według mnie jeśli to ma być uniwersalna biblioteka, to powinna być możliwość konfiguracji tego. Jeśli to jest element aplikacji to zrób na początku tak jak według Ciebie jest wygodnie, a potem skoryguj to z opinią użytkowników.

13
Szkółka / Odp: [C++] Bufforowany RAWINPUT... tego chyba jeszcze nie było
« dnia: Kwiecień 13, 2013, 21:09:18 »
Według mnie te dokumentacje (jeśli chodzi o opisu klas itd.) stoją na podobnym poziomie, tylko MSDN ma nieco ładniejszą stronę :P Jedyną rzeczą, która bardzo mi się w Javie spodobała, to fakt, że gdy w IntelliJ IDEA kliknąłem goto declaration (czy jakoś tak) to zobaczyłem źródło funkcji bibliotecznej, co mi się spodobało, bo z kodu zazwyczaj łatwiej zrozumieć działanie funkcji :)

14
Platformy / Odp: Dynamiczne wywoływanie funkcji
« dnia: Kwiecień 09, 2013, 13:41:32 »
Poszukałem trochę w google i znalazłem to: http://stackoverflow.com/questions/1128150/win32-api-to-enumerate-dll-export-functions

Po nieznacznym przerobieniu kodu udało się stworzyć coś, co zdaje się działać dla DLL-ek wyplutych przez kompilator Microsoftu:
#include <Windows.h>
#include <winnt.h>
#include <assert.h>
#include <stdio.h>
#include <DbgHelp.h>

int main(int argc, const char* args[])
{
wchar_t path[512];
mbstowcs(path, args[1], 512);

HMODULE lib = LoadLibraryEx(path, NULL, DONT_RESOLVE_DLL_REFERENCES);
assert(((PIMAGE_DOS_HEADER)lib)->e_magic == IMAGE_DOS_SIGNATURE);
PIMAGE_NT_HEADERS header = (PIMAGE_NT_HEADERS)((BYTE *)lib + ((PIMAGE_DOS_HEADER)lib)->e_lfanew);
assert(header->Signature == IMAGE_NT_SIGNATURE);
assert(header->OptionalHeader.NumberOfRvaAndSizes > 0);
PIMAGE_EXPORT_DIRECTORY exports = (PIMAGE_EXPORT_DIRECTORY)((BYTE *)lib + header->
OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress);
PVOID names = (BYTE *)lib + exports->AddressOfNames;
char tmp[512];
for (int i = 0; i < exports->NumberOfNames; i++)
{
UnDecorateSymbolName((const char*)((BYTE *)lib + ((DWORD *)names)[i]), tmp, 512, UNDNAME_COMPLETE);

printf("Export: %s\n", tmp);
}

return 0;
}

Dla DLL w C dostajemy niestety tylko nazwy funkcji (sprawdziłem dla msvcrt.dll), ale dla tych napisanych w C++ da się uzyskać już nieco więcej:
Export: public: __thiscall Dupa::Dupa(void)
Export: public: __thiscall Dupa::~Dupa(void)
Export: public: class Dupa & __thiscall Dupa::operator=(class Dupa const &)
Export: bool __cdecl aaa(int,float)
Export: public: int __thiscall Dupa::bar(void)
Export: public: void __thiscall Dupa::foo(void)
Export: public: double __thiscall Dupa::sfghw(int,float,char const *)

Wydaje mi się, że adres metody z klasy lub funkcji C++ możesz normalnie pozyskać za pomocą GetProcAddress (podajesz udekorowaną nazwę). Więc dla C++ na Windowsie dla bibliotek skompilowanych za pomocą Visual Studio możesz uzyskać pełne deklaracje funkcji. Dla GCC pewnie też się jakoś da.

[Edit]: A i nie daję żadnej gwarancji, że ten kod będzie działał zawsze. To jest bardziej na zasadzie "u mnie działa" ;)

15
Platformy / Odp: Dynamiczne wywoływanie funkcji
« dnia: Kwiecień 08, 2013, 21:30:21 »
Swego czasu jak pisałem własny język skryptowy, to wywoływanie zewnętrznych funkcji zrobiłem właśnie za pomocą wstawek asemblerowych i wstawiania argumentów w pętli na stos. Oprócz problemów z przenośnością takiego rozwiązania jest także problem z różnymi typami wywołań (fastcall, stdcall...).

Ogólnie teraz na szybko mogę zaproponować tworzenie funkcji pośredniej, która jako argument przyjmuje "coś" w czym będą przekazywane argumenty. Funkcje pośrednią powinno dać się wygenerować jakimś narzędziem (jak takie napiszesz) ;)

Strony: [1] 2 3 4 5 ... 30