"Developement" 검색결과 (142)
  • MinGW 용 DirectX 8 input Joystick(조이스틱) 예제 (src, lib 포함)

    MinGW 에서 DirectX 쓰기란 MinGW-W64 오면서 참 많이 편해진 편 입니다만, 여전히 MSDN 에서 제공하는 기본 예제 조차 컴파일이 안되는 비극을 보면 갈 길이 멀어 보이기도 합니다. 이번엔 Joystick 을 DInput 으로 처리 하려니 되는게 없어 Wine 용 DirectX8 header 와 library 등을 MSDN 에서 제공하는 예제 소스와 함께 빌드 할 수 있도록 만들었습니다. 현재 이 소스는 MinGW-W64 기준 최신버젼 (5.1) 에서 빌드가 가능하며, CodeBlocks 에서 project 파일만 열어서 빌드 후 테스트 가능 합니다. 소스는 아래 첨부파일로 붙임을 하겠으며, 원래 소스가 MSDN 공개에서 가져 왔으며, DirectX8 기준이긴 하나, 이쪽 부분은 발전이..

    Developement/C/C++
    2015.08.04 14:21
  • 리눅스에서 RaspberryPi 를 위한 ffmpeg 라이브러리 빌드 하기.

    라즈베리파이(이하 RPI) 에서도 ffmpeg 을 쓰는데 뭔가 성능이 안나온다는 친구의 말을 듣고 일단 ffmpeg 을 RPI 개발 환경에서 빌드 할 수 있도록 간단히 꾸며 보았습니다. 단, 이 방법은 이미 다른 cross-platform 을 쓰고 있는 상태에서 빌드 하는 환경을 만들기 위해 단순히 ffmpeg 빌드를 위해 몇가지 스크립트를 추가해서 사용하는 방법을 설명 하고 있습니다. 먼저 RPI 빌드 툴을 받아야 하므로 아래처럼 했습니다. (이미 있으신 분들은 skip) 먼저 개인적으로 모든 소스를 밀어 넣는 Project 밑에 raspberrypi 디렉터리를 하나 만들었습니다. github 에서 RPI toolkit 을 clone 하여 tools 로 디렉터리가 만들어 지도록 합니다. 이로서 RPI ..

    Developement/C/C++
    2015.06.17 16:58
  • MinGW w64 로 ffmpeg 관련 링크 오류 !

    minGW 의 버젼을 4.9.x 대로 올리면서 DirectX 와 기타 등등의 Windows 의 모든 걸 쓸 수 있도록 나오는 mingw-w64로 선택 했더니 ffmpeg 라이브러리에서 이런 오류가 나온다. unistd 에 포함되던 sleep, globalfree, glob, mkstamp 등이 기본 라이브러리에 없다는 말이다! 문제는 이게 4.9.x 버젼대에만 있는 것이 아니라 5.1 최신판도 마찬가지란 점... 해결책을 찾아야 하는데, 이걸 직접 내가 만들어 쓰는 것도 문제일 탠데 ... 방법을 찾는대로 이어서 포스팅 하도록 하겠다. 이 문제는 이전에 사용한 ffmpeg 을 새로운 minGW 로 빌드 하고, ffmpeg 에 다음 소스들을 수정 해야 한다. libavutil\file.c libavutil..

    Developement/C/C++
    2015.06.12 13:38
  • [FLTK]minGW 에서 OpenGL 3.x 사용하기 (Shader programming)

    기본적으로 minGW 를 설치 하면 포함 되어 있는 OpenGL header 버젼은 1.2 대 버젼으로 현재 4.0 헤더가 크로노스 그룹에서 공개 된 걸 생각하면 한참이나 구시대의 유물인 상태 이다. 사실 이걸로는 GeForce2 나 RadeonX 시절의 pixel shader 없는 심심한 그래픽이나 그리는거 말곤 할수 있는게 없다. 이번엔 FLTK 에서 OpenGL shader programming 을 통한 YUV422 이미지를 Programming Object ARB 를 이용하여 texture 1+2+3 을 겹쳐 하나의 완성된 이미지로 만들어 내는걸 해 보기로 하면서 기본 MinGW 에서 수정 되어야 할 점과, OpenGL 프로그래밍을 할때 추가 해야 하는 부분들을 정리 해 보도록 하겠다. 먼저 기본..

    Developement/C/C++
    2015.06.02 16:05
  • [FLTK] ffmpeg library 붙이기 1단계 OK.

    근래 ffmpeg 을 빌드 해서 BGRA 4bytes 픽셀 데이터를 얻어 화면에 뿌리는 작업을 하는 김에 FLTK 를 붙여 본 작업을 진행 하고 있습니다. 물론 이 작업은 순조롭게 진행 되어 2개의 후면 버퍼로 그리는데 지장 없이 완료 되었습니다. ffmpeg 의 기본 SDL 을 이용한 예제 보다 반응속도가 빠르고 frame skip 을 저해 하는 요소도 비동기적으로 설계된 부분덕분에 없는 편 입니다만, 화면을 처리 하는 부분이 thread 대신 timer 로 만들어 테스트 해서 초당 화면 렌더링 속도는 떨어지는 편 인 듯 합니다. 제작이 완료 되는 대로 사용된 ffmpeg 및 예제 소스는 제 gitHub resource 중에 포함 시키도록 하여 GPL/LGPL 에 따라 공개 하도록 하겠습니다.

    Developement/C/C++
    2015.04.13 10:04
  • [FLTK] Fl_RGB_Image 소멸시 주의 사항.

    금일 이전에 만든 Rotating 이 되는 이미지 를 고속으로 FLTK 로 그리는 작업을 실행 중에 고속으로 메모리가 증가 하는 문제가 발생 했습니다. 이는 Fl_RGB_Image 의 생성시 unsigned char 형태의 array 로 생성 되는 경우, 참조되는 array 가 생성하는 쪽에서 제거를 해야 하는 형태로 만들어 지는 것을 간과 했기 때문 입니다. Fl_Image.H 의 Fl_RGB_Image 생성자 부분을 보면, Fl_RGB_Image(const uchar *bits, int W, int H, int D=3, int LD=0) : Fl_Image(W,H,D), array(bits), alloc_array(0), id_(0), mask_(0) {data((const char **)&array..

    Developement/C/C++
    2015.03.20 17:01
  • Linux 에서 Android device USB debugging 설정 하기.

    Linux Mint 17.1 32bit 에서 USB debugging 을 위해 Android 기기를 연결 하면 당연히 아무것도 되는게 없다. adb device 해 봐야 뜨는게 없다. 이럴땐 다음과 같이 하도록 하자. 먼저 lsusb 를 이용해서 현재 꼽혀 있는 USB 장치의 Vendor ID 를 알아 와야 한다. (또는 google 문서에 있는 ID 참조) 위 이미지 처럼 확인되어야 하는 것은 Bus xxx Device xxx: ID AAAA:xxxx xxxxxxxxxxx..... 에서 AAAA 4자리의 16진수 이다. 이것을 Gedit 등에 복사 후 붙여 둔 다음 Terminal 에서 /etc/udev/rules.d 로 이동 한 다음 51-android.rules 가 있는지 확인 해 본다. (만약 없..

    Developement/Android
    2015.03.05 10:17
  • Android SDK 의 HW emulator 32bit 오류 나며 구동 안 될때

    현재 Android app 개발을 demonstration 용으로 진행 중 인데, Java를 C++ 코드 처럼 짜는 본인에게 이런 환경 구축은 어려운 일 이다. 그중 Emulator를 Nexus5 와 맞춰 놓고 구동 하니 이런 오류를 내 뱉는다. ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them you will have to do at least one of the following: - Use the '-force-32bit' option when invoking 'emulator'. - Set ANDROID_EMULATOR_FORCE_32BIT to 'true' in your environment. 읭? 어쩌라고...개..

    Developement/Android
    2015.03.04 15:00
  • HTTP/1.1 의 POST 때문에 살짝 고민한 문제 ....

    이전에 만든 HTTP/1.0 용 socket source 를 POST 까지 되도록 버그를 수정 하면서 HTTP/1.1 으로 호환되게 변경 하다 보니 알수 없는 문제를 격었습니다. 바로 해당 서버(Apache2 + PHP5) 에서 $_POST[x] method 를 이용해서 넘어 온 것이 없는 듯이 인식 한다는 점 이었습니다만, 여러번의 시도 중 다음 header 인자가 중요하다는 것을 알았습니다. 바로 Content-Type 이 문제 였습니다. PHP5 에서 제대로 POST 되는 내용을 알려면 Content-Type 을 application/x-www-form-urlencoded 로 써야 인식을 하는 것 이었습니다. 기존엔 text/html 로 mime 을 지정해서 보냈더니 이걸 인식 못하는 문제를 이제 ..

    Developement/C/C++
    2015.02.23 17:12
  • 짬이 얼만데 저지른 어처구니 없는 실수 ...

    프로그래밍을 해 온지 몇년인데 ... 인지하지 못하는 실수가 오늘 있었습니다.새로운 FLTK window 를 Fl_Window 를 상속 받아 만들고 컴파일 했는데 왠 vtable 오류가 나길래 왜이러나 했습니다. 수년간 이런 실수를 한 적이 없는데 '왜 갑자기 class table 오류가 나는거지 ?' 하고 그냥 소스를 봤습니다. '상속을 잘못 받아서 쓴건가?' 라고 단순히 행각 해 봤는데 ... 딱히 하는게 없습니다. '대체 왜이러시나?' 하고 Header 를 다시 봅니다. '내가 뭘 잘못 쳤나 ... ?' 라며. 이런 말이 있죠. "들어 올땐 니 맘대로 였는데, 나갈땐 아니란다 ..."그렇습니다. 생성자만 만들어 놓고 소멸자에 virtual 로 만든게 아닌데 cpp 에선 소멸자를 만들어 놓지도 않은 ..

    Developement/C/C++
    2014.09.05 15:09
  • [FLTK] Fl_Group 을 이용한 화면 분할 및 자동 크기 조정.

    FLTK 는 Windows 나 X11 에서 창의 크기를 조정 할 수 있도록 만들어 져 있습니다만, 기본적으로 resize 를 지원 할 경우 최초 만들어진 창의 크기에 각 위젯(Fl_Widget) 들이 만들어진 크기의 비율(ratio) 로 그 크기가 조정 되게 됩니다. 이런 방법은 최초 만들어진 UI 의 디자인적 요소를 해치지 않고 그 비율을 유지 한다는 장점이 있을 수도 있지만, 좀 더 detail 한 UI 를 적용 하는데 있어서는 오히려 해가 되는 경우가 있습니다. 예를 들어 다음과 같이 만들어진 프로그램의 경우, 최초 실행되는 크기에서 윈도우 크기를 변경 할 경우 비율대로 커지게 되면 다음과 같이 글자 크기만 빼고 비율 대로 늘어지는 모습을 가지게 됩니다. 비율대로 커지는것 까지는 좋게 생각할 수 있..

    Developement/C/C++
    2014.07.22 14:34
  • [FLTK] X11/nano-X 에서 FLTK 화면 flushing

    FLTK 를 X11 이나 nano-X 에서 그리는 경우 화면 갱신을 Fl::check(); 또는 Fl::wait(); 등으로 갱신 시키지 않는 방법으로 이전의 글을 posting 했습니다만, 실제 nano-X 에서는 XFlush() 를 쓰지 않고 갱신 하는 것이 좀 더 안정이 있는 것으로 판단 되어 수정된 코드를 올립니다. 특히 XFlush() 는 thread-unsafe 이므로 중복으로 호출 되는 경우가 없어야 하는 것을 고려 해야 하므로 static bool 변수를 하나 사용하여 중복 호출의 위험을 줄였습니다. #ifdef _WIN32 #include #else #include #endif static bool isRedrawingFLTK = false; void RedrawFLTK() { if ( ..

    Developement/C/C++
    2014.07.21 16:19
  • [FLTK] Win32/X11 에서 FLTK 고속 rednering (또는 redraw)

    FLTK 에서는 사실상 Fl::check(); 나 Fl::wait(); 등으로 화면을 갱신 하는 방법이 있습니다. 하지만 이 방법을 사용할 경우 잘못된 화면 출력이나 프로그램 자체가 멈추는 문제가 발생되는 단점이 있습니다. 실질적으로 FLTK 는 강제적인 redraw 를 할수 있는 조건을 FLTK 자체가 결정 하는 구조이며, Windows 에서는 비활성화 된 Window 에서는 1초에 한번 그리는 경악적인 상태로 바뀝니다. 문제는 활성화 된 상태 이더라도 Fl_Window 객체를 아무리 redraw(); 하더라도 갱신은 "니 맘대로 되는것이 아니란다" 라는 단점이 있습니다. 이를 해결 하기 위해 여러 방법을 찾다가 문듯, 활성화된 FLTK Window 위에서 마우스를 계속 움직이면 고속으로 화면이 갱신 ..

    Developement/C/C++
    2014.07.18 17:08
  • [FLTK] Fl_RGB_Image 로 부터 회전된 이미지 얻기.

    FLTK 는 여러 플랫폼에서 간단하면서 깔끔한 UI 를 만들기에 매우 좋은 GUI library 입니다만, 기본 기능에만 기준을 두고 있다 보니 이미지 처리 ( 리사이즈나 회전 등 ) 는 없는 것이 아쉬운 부분 입니다. 이번의 경우는 이미지를 회전 시켜 표시 해야 하는 경우 (위 이미지 처럼 뭔가 열심히 일 하고 있으니 기다려 주십사~ 하는) 기본으로 그리는 수준으로는 깔끔한 이미지를 얻기 힘듭니다. 이를 개선 하기 위해 구글링 중 CodeGuru 에서 이미지 회전에 관한 글 을 찾았습니다. 그리고 이를 응용하여 다음과 같은 API 를 만들어 보았습니다. #include #ifndef M_PI #define M_PI 3.141592654 #endif ⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄⁄..

    Developement/C/C++
    2014.07.08 15:04
  • EnCypher tool (AES256, BASE64) C++ library w/ Sample.

    EnCypher 라고 이름은 거창 하긴 합니다만, 단지 AES-256 과 BASE-64 를 이용하는 Front-end c++ class library 에 막 가져다 붙인 이름 입니다. 용도는 AES-256 으로 암호화 한 정보를 다시 BASE-64 로 인코딩 한 문자열을 만들거나, 반대로 처리 하는걸 만들수 있습니다. 사용하려는 C++ 코드 위에 #inlcude "endetool.h" 를 추가 해 준 다음, EnDeTool class 를 할당해서 쓰면 됩니다. 여러 기능을 제공하고 있는데 주된 기능은 다음과 같습니다.문자열을 AES-256 과 BASE-64 로 암호화 또는 복호화 단순 데이터를 AES-256 으로 암호화 또는 복호화 아래의 소스코드는 바이너리 데이터를 암호/복호화 하는 것만 들어 있긴 합..

    Developement/C/C++
    2014.03.06 15:52