タグ

C++とProgrammingに関するharu-sのブックマーク (26)

  • OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita

    imguiとは imguiは、OpenGLやDirectXなどの描画環境の中で動くGUIフレームワークです(vulkanも?)。 "Immediate Mode GUI"と呼ばれるパラダイムにより、大変短く直感的なコードでGUIを構築できます。 どういうGUIコンポーネントが使えるかは、リポジトリのスクショを見ていただいたほうが良いかと思います。 デバッグや調整、テスト用のGUIを構築することが目的のフレームワークです。 環境 今回この記事ではwindows10, vs2015, Cinder(0.9.0)上でサンプルを作成しました。 Cinder用には専用のimgui拡張があるため、そちらを使用します。 https://libcinder.org/ https://github.com/simongeilfus/Cinder-ImGui的な考え方や、imguiAPIは同じですが、

    OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
  • char8_t 欲しい - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    C++0x からは UTF16 の文字列リテラル(u"...")とその型(char16_t)、UTF32 の文字列リテラル(U"...")とその型(char32_t)が入ります。 そして UTF8 の文字列リテラル(u8"...")も入ります。しかし UTF8 を表す型は入りません。u8"..." は char の配列を返します。 ある関数の引数が "..." と u8"..." のどちらで渡されたのかを区別する方法はありません。残念です。 まあ今更入れろなんて言ったところでどうせ無理だと思うので、諦めて何かうまい方法を探しましょうということで、適当に考えてみました。 struct char8_t { // いろいろ実装 }; const char8_t* u8(const char* str) { return reinterpret_cast<const char8_t*>(str);

    char8_t 欲しい - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • C++, boost::thread : スレッドの同期と排他制御 – mutex、conditionクラス

    複数のスレッドから1つの変数にアクセスする際、システム側のスレッドスケジューリング次第で、予期せぬ書き換えが起こってしまう場合があります。その為、ある1つのスレッドが変数にアクセスしている際は他のスレッドをブロックする排他制御やスレッドの同期を行う必要があります。C++Javaのsynchronizedメソッド/ブロックと同じような記法でクリティカルセクションを実装する方法の1つにboost::threadライブラリのmutexとconditionクラスがあります。 mutex クラスの使い方 スレッドの排他制御を実現できます。具体的な使い方は、mutexインスタンスをmutex::scoped_lockクラスのコンストラクタの引数に指定し、そのインスタンスを取得することでロックをかけられます。あるスレッドが上の処理を以ってmutexインスタンスにロックをかけた場合、その他のスレッドは再

    C++, boost::thread : スレッドの同期と排他制御 – mutex、conditionクラス
  • Voice Recording/Playing back using simple classes

    This article introduces some useful classes that wrap the WAVE APIs. Download source files - 4.41 Kb Introduction Most of us are familiar with at least one multimedia recording software. Windows has one of the simplest ones: Sound Recorder. In this article I want to introduce some simple but useful classes for recording/playing back of voice that wrap the WAVE APIs. WAVE APIs Here is the list of a

  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • はてなブログ | 無料ブログを作成しよう

    新米と秋刀魚のわた焼き お刺身用の秋刀魚を買いました。1尾250円です 3枚におろして、秋刀魚のわたに酒、味醂、醤油で調味して1時間ほど漬け込み、グリルで焼きました 秋刀魚のわた焼き わたの、苦味が程よくマイルドに調味され、クセになる味わいです 艶やかな新米と一緒に 自家製お漬物 土…

    はてなブログ | 無料ブログを作成しよう
  • U++ - Cross-Platform App Development Framework

    U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc.), and an integrated development environment. Rapid development is achieved by the smart and aggressive use of C++ rather than through fancy code generators. In this respect, U++ competes with popular scripting languages while preserving C/C++ runti

  • 【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 [技術・工作] ■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく...

    【プログラミング】テトリスを1時間強で作ってみた【実況解説】 ‐ ニコニコ動画(原宿)
    haru-s
    haru-s 2009/10/16
    F1でヘルプ出たときあるある過ぎて盛大に吹いた
  • 1. boost::weak_ptrを利用するケース|オブジェクトの広場

    1.スマートポインタとは? boost::weak_ptrを利用するケースについてお話しする前に、まず、スマートポインタについての概要をおはなしする必要があります。なぜなら、boost::weak_ptrは、(ちょっと特殊な)スマートポインタの一種だからです。 スマートポインタとは、賢い(スマートな)ポインタという名前の由来からも想像できるかと思いますが、指し示すオブジェクトの後始末を自動化してくれる、ポインタのように振る舞うクラステンプレートのことです。 プログラミング言語C++では、メモリや各種ハンドルなどのリソースの管理にスマートポインタを利用します。スマートポインタを用いることで、リソースの解放が自動化され、リソースリーク問題を防ぐことができます。 残念ながら、現在のC++C++03)標準では、汎用的に利用できるスマートポインタが提供されていません(std::auto_ptrが提

  • 1st prize in ICFP Programming Contest 2009 - 兼雑記

    なんか優勝しちゃったようです。それでエジンバラにいます。というわけでこの一年は C++ のわるくちを言うことはゆるされません。くれぐれも、気をつけて下さい。 勝因としては、まぁ運が良かったんだろうなーという。9位だったのに verification round で 1位になったそうですし。もうちょいポジティブに評価するならテストケース変わっても動く程度に robust だったってことですかねぇ。 なにか速報してくれてる方がいたのでリンクを。 http://twitter.com/liyanghu/status/3691832714 写真

    1st prize in ICFP Programming Contest 2009 - 兼雑記
    haru-s
    haru-s 2009/09/09
    いやすごいわー
  • The C++0x "Remove Concepts" Decision

    Currently we allow the following HTML tags in comments: Single tags These tags can be used alone and don't need an ending tag. <br> Defines a single line break <hr> Defines a horizontal line Matching tags These require an ending tag - e.g. <i>italic text</i> <a> Defines an anchor <b> Defines bold text <big> Defines big text <blockquote> Defines a long quotation <caption> Defines a table caption <c

    haru-s
    haru-s 2009/08/01
    日本語で読みたい
  • Programming Principles and Practice Using C++

    (原書)が届きました。 全編カラーの1200ページover、 なんとも厚苦しいですこと。 こいつの監修だってばよ。 年内リリースを目指します。応援よろしくぅ! 投稿日時 : 2009年8月1日 17:18 コメントを追加 # re: Programming Principles and Practice Using C++ 2009/08/01 17:51 囚人 の翻訳って事なんですかね~? 1200ページとは、腕も頭も鍛えられますな♪ 楽しみにしております。 # re: Programming Principles and Practice Using C++ 2009/08/01 18:31 zak >1200ページover これが棚に二冊(原著と訳)だ・・・と・・・? C++タワーの高さが一挙に跳ね上がりますね。 # re: Programming Princi

    haru-s
    haru-s 2009/08/01
    これはなんというかえぐいレベルw/欲しい
  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
    haru-s
    haru-s 2009/07/08
    慣れたら難しいとは思わなくなるけどめんどくさいとはいつまでも思うそれがC++
  • 近代的タスクシステムの構築 - やねうらおブログ(移転しました)

    いつかに書こうと思っていたが、多忙につき、を書くどころではない状況なので、内容が風化する前に誰かの参考になればと要点だけでも書き残しておく。 いまの視点(2009年)で見たときに拙著(ASIN:4798006033)にて不足している部分を補足するためのものである。この自体はすでに絶版になりプレミア価格で取引されているが、もし参考文献を探しているなら、出来ればこのは買わずに次に出すゲームプログラミングのほう参考にして欲しい。 ■ タスクシステムの定義 ここで言う「タスクシステム」とは、ゲームプログラミングの教科書に出てくるものである。(cf. 「格的なシューティングゲームを実現するタスクシステム」 http://codezine.jp/article/detail/297?p=1 ) 「タスクシステム」は初期のビデオゲームで、V-SYNCをイベントトリガとして画面を描画するときに

    近代的タスクシステムの構築 - やねうらおブログ(移転しました)
    haru-s
    haru-s 2009/02/03
    タスクシステムのことを考える時間はプログラミングの中でも特別楽しい時間だと思う
  • FrontPage - OpenCV@Chihara-Lab.

    Link: 掲示板(28d) 適応的二値化処理(119d) Visual C++ 2008 Express Edition(298d) 射影変換(301d) RGBTRIPLE(362d) リンク(377d) GML C++ Camera Calibration Toolbox(554d) 高度なGUI(554d) 基形(554d) 行列の出力(554d) Python(554d) カメラキャリブレーション(554d) PukiWiki/1.4/Manual/Plugin/L-N(554d) PukiWiki/1.4/Manual/Plugin/O-R(554d) ボールトラッキング(554d) SharperCV関数リファレンス(554d) 主成分分析(554d) カメラ利用の基形(554d) マウス入力(554d) キャプチャ&動画ファイル出力(554d) 画像の2値化処理(554

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
    haru-s
    haru-s 2009/01/05
    お,bokkoの記事だーヲチヲチ
  • ゲームプログラマになる前に覚えておきたい技術 - やねうらおブログ(移転しました)

    ゲームプログラマになる前に覚えておきたい技術posted with amazlet at 08.11.30平山 尚(株式会社セガ) 秀和システム 売り上げランキング: 212 おすすめ度の平均: 良書です。が、ある程度のプログラミングスキルが必要 Amazon.co.jp で詳細を見る セガの新人教育カリキュラムを担当している現役プログラマが書いたということで話題を集めている。 よくこんな書いたなぁ、というのが私の感想。 C++を覚え立てぐらいの人が、簡単なゲームを作れるまでのところを網羅的に解説している。 ページ数はなんと、872ページもある。 どちらかと言えば初心者向け。一応3Dのことも書で触れられてはいるが、総じて中級の入り口ぐらいまでだと思う。 C++覚え立てぐらいの人が、「ゲームでも作ってみよう」と思ったときに読めばいいだろう。 いままで、この範囲を網羅的にカバーした

  • How To Use Google Logging Library (glog)

    (as of ) Introduction Google glog is a library that implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros. You can log a message by simply streaming things to LOG(<a particular severity level>), e.g. #include <glog/logging.h> int main(int argc, char* argv[]) { // Initialize Google's logging library. google::InitGoogleLogging(

    haru-s
    haru-s 2008/10/12
    便利さをアピールする記事まだー?
  • 間違ったコードはコンパイルできないようにする

    これは Google に保存されている http://www.maroontress.com/Hungarian/ のキャッシュです。 このページは 2008年10月15日 12:57:30 GMT に取得されたものです。 そのため、このページの最新版でない場合があります。 詳細 間違ったコードはコンパイルできないようにする ハンガリアン記法に関する間違った意見をよく目にする。Making Wrong Code Look Wrong(間違ったコードは間違って見えるようにする)の記事では、ハンガリアン記法でもアプリケーションハンガリアンは有用だと主張している。もちろん、わかりやすい変数名を使用することには賛成だが、変数名を人間が目で見て正しいかどうかを判断しなければならないようなルールに価値はないと確信している。ワインバーグではないが、計算機が得意なことは計算機にやらせればよいのであって、

    haru-s
    haru-s 2008/10/08
    アプリケーションハンガリアンなんてやるよりタイプシステムに任せよう/その通り