rofi-youtube
変更後 幅: | 高さ: | サイズ: 612 KiB |
変更後 幅: | 高さ: | サイズ: 816 KiB |
変更後 幅: | 高さ: | サイズ: 631 KiB |
変更後 幅: | 高さ: | サイズ: 306 KiB |
変更後 幅: | 高さ: | サイズ: 669 KiB |
変更後 幅: | 高さ: | サイズ: 406 KiB |
変更後 幅: | 高さ: | サイズ: 203 KiB |
153
gemini/blog.atom
|
@ -3,13 +3,53 @@
|
||||||
<id>gemini://technicalsuwako.moe</id>
|
<id>gemini://technicalsuwako.moe</id>
|
||||||
<title>テクニカル諏訪子</title>
|
<title>テクニカル諏訪子</title>
|
||||||
|
|
||||||
<updated>2023-06-06T00:00:00Z</updated>
|
<updated>2023-06-10T00:00:00Z</updated>
|
||||||
|
|
||||||
<author><name>テクニカル諏訪子</name></author>
|
<author><name>テクニカル諏訪子</name></author>
|
||||||
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<entry>
|
||||||
|
<id>blog/rofi-youtube-100.gmi</id>
|
||||||
|
<author><name>凛</name></author>
|
||||||
|
<title type="html">【076】rofi-youtube 1.0.0登場</title>
|
||||||
|
<published>2023-06-10T00:00:00Z</published>
|
||||||
|
|
||||||
|
<category term="jp"></category>
|
||||||
|
|
||||||
|
<category term="blog"></category>
|
||||||
|
|
||||||
|
<category term="ソフト開発"></category>
|
||||||
|
|
||||||
|
<category term="076"></category>
|
||||||
|
|
||||||
|
<category term="rofi"></category>
|
||||||
|
|
||||||
|
<category term="rofi-youtube"></category>
|
||||||
|
|
||||||
|
<link href="gemini://technicalsuwako.moe/blog/rofi-youtube-100.gmi" rel="alternate"></link>
|
||||||
|
<content type="html">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="rofi-youtube">rofi-youtubeって何?</h2>
|
||||||
|
<p>rofi-youtubeは、rofiを用いてYouTubeの動画を検索し再生する為のソフトです。</p>
|
||||||
|
<h2 id="heading">ソースコード</h2>
|
||||||
|
<p><a href="https://gitler.moe/suwako/rofi-youtube">Gitler</a><br />
|
||||||
|
MakefileはLinux、FreeBSD、OpenBSD、NetBSD、及びOpenIndianaに対応しています。<br />
|
||||||
|
しかし、NetBSDでのgoコンパイラのインストールに失敗した為、その部分についてテストしていません。</p>
|
||||||
|
<h2 id="heading-1">スクショ</h2>
|
||||||
|
<p><img src="https://ass.technicalsuwako.moe/rofiyt1.gif" alt="" />
|
||||||
|
<img src="https://ass.technicalsuwako.moe/rofiyt2.gif" alt="" /></p>
|
||||||
|
<h2 id="heading-2">ダウンロード</h2>
|
||||||
|
<p><a href="https://gitler.moe/suwako/rofi-youtube/releases">リリースページ</a></p>
|
||||||
|
<p>以上</p>
|
||||||
|
|
||||||
|
|
||||||
|
</content>
|
||||||
|
</entry>
|
||||||
|
|
||||||
<entry>
|
<entry>
|
||||||
<id>blog/openbsd-gemini-server.gmi</id>
|
<id>blog/openbsd-gemini-server.gmi</id>
|
||||||
<author><name>凛</name></author>
|
<author><name>凛</name></author>
|
||||||
|
@ -324,116 +364,5 @@ Rustは動的であるため、さらに奇妙に感じます。</p>
|
||||||
</content>
|
</content>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
||||||
<entry>
|
|
||||||
<id>blog/c-lib-in-zig-use.gmi</id>
|
|
||||||
<author><name>凛</name></author>
|
|
||||||
<title type="html">【プログラミング】Zig言語を使ってC向けのライブラリを利用する方法</title>
|
|
||||||
<published>2023-05-18T00:00:00Z</published>
|
|
||||||
|
|
||||||
<category term="jp"></category>
|
|
||||||
|
|
||||||
<category term="blog"></category>
|
|
||||||
|
|
||||||
<category term="ゲーム開発"></category>
|
|
||||||
|
|
||||||
<category term="Zig"></category>
|
|
||||||
|
|
||||||
<category term="C言語"></category>
|
|
||||||
|
|
||||||
<category term="SDL"></category>
|
|
||||||
|
|
||||||
<link href="gemini://technicalsuwako.moe/blog/c-lib-in-zig-use.gmi" rel="alternate"></link>
|
|
||||||
<content type="html">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p>ゲーム開発といえば、C++やUnity、Unreal等がが頭に浮かびますね。<br />
|
|
||||||
しかし、新しい言語であるZigを使う事をお勧めします。<br />
|
|
||||||
新しい言語だからと言って、必要なライブラリ(SDL、VulkanやOpenGL等)は存在しないと思うかもしんが。心配は無用です。<br />
|
|
||||||
Zig言語の大きなメリットは、C言語及びC++のライブラリをそのまま利用出来る事です!</p>
|
|
||||||
<p><a href="https://repology.org/project/zig/versions">まずはZigコンパイラをインストールしましょう。</a></p>
|
|
||||||
<pre><code lang="">mkdir zigdev <span style="color:#666">&amp;&amp;</span> <span style="color:#a2f">cd</span> zigdev
|
|
||||||
nvim main.zig
|
|
||||||
</code></pre><p>以下に示すソースコードを使用します。<br />
|
|
||||||
まずは内容を確認し、何が起こるかを予想してみて下さい。</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>});<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">pub</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">fn</span><span style="color:#bbb"> </span>main()<span style="color:#bbb"> </span><span style="color:#666">!</span><span style="color:#0b0;font-weight:bold">void</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">if</span><span style="color:#bbb"> </span>(c.SDL_Init(c.SDL_INIT_VIDEO)<span style="color:#bbb"> </span><span style="color:#666">!=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;開始失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">return</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">error</span>.SDLInitializationFailed;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#080;font-style:italic">// defer = 終了する時、実行すると意味だ。
|
|
||||||
</span><span style="color:#080;font-style:italic"></span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">defer</span><span style="color:#bbb"> </span>c.SDL_Quit();<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">var</span><span style="color:#bbb"> </span>window<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_CreateWindow(<span style="color:#b44">&#34;hellow&#34;</span>,<span style="color:#bbb"> </span>c.SDL_WINDOWPOS_CENTERED,<span style="color:#bbb"> </span>c.SDL_WINDOWPOS_CENTERED,<span style="color:#bbb"> </span><span style="color:#666">640</span>,<span style="color:#bbb"> </span><span style="color:#666">400</span>,<span style="color:#bbb"> </span>c.SDL_WINDOW_OPENGL)<span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">orelse</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;ウィンドウ創作失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">return</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">error</span>.SDLInitializationFailed;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>};<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">defer</span><span style="color:#bbb"> </span>c.SDL_DestroyWindow(window);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">var</span><span style="color:#bbb"> </span>renderer<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_CreateRenderer(window,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span>c.SDL_RENDERER_PRESENTVSYNC)<span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">orelse</span><span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;レンダー創作失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">return</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">error</span>.SDLInitializationFailed;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>};<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">defer</span><span style="color:#bbb"> </span>c.SDL_DestroyRenderer(renderer);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>mainloop<span style="color:#666">:</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">while</span><span style="color:#bbb"> </span>(<span style="color:#a2f;font-weight:bold">true</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">var</span><span style="color:#bbb"> </span>sdl_event<span style="color:#666">:</span><span style="color:#bbb"> </span>c.SDL_Event<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">undefined</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">while</span><span style="color:#bbb"> </span>(c.SDL_PollEvent(<span style="color:#666">&amp;</span>sdl_event)<span style="color:#bbb"> </span><span style="color:#666">!=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">switch</span><span style="color:#bbb"> </span>(sdl_event.<span style="color:#0b0;font-weight:bold">type</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_QUIT<span style="color:#bbb"> </span><span style="color:#666">=&gt;</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">break</span><span style="color:#bbb"> </span><span style="color:#666">:</span>mainloop,<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">else</span><span style="color:#bbb"> </span><span style="color:#666">=&gt;</span><span style="color:#bbb"> </span>{},<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_SetRenderDrawColor(renderer,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_RenderClear(renderer);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">var</span><span style="color:#bbb"> </span>rect<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_Rect{<span style="color:#bbb"> </span>.x<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span>.y<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span>.w<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">60</span>,<span style="color:#bbb"> </span>.h<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">60</span><span style="color:#bbb"> </span>};<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>a<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">0.001</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@intToFloat</span>(<span style="color:#0b0;font-weight:bold">f32</span>,<span style="color:#bbb"> </span>c.SDL_GetTicks());<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>t<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">2</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span>std.math.pi<span style="color:#bbb"> </span><span style="color:#666">/</span><span style="color:#bbb"> </span><span style="color:#666">3.0</span>;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">100</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@cos</span>(<span style="color:#666">0.1</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span>a);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.x<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">290</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@cos</span>(a));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.y<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">170</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@sin</span>(a));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_SetRenderDrawColor(renderer,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_RenderFillRect(renderer,<span style="color:#bbb"> </span><span style="color:#666">&amp;</span>rect);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.x<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">290</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@cos</span>(a<span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span>t));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.y<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">170</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@sin</span>(a<span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span>t));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_SetRenderDrawColor(renderer,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_RenderFillRect(renderer,<span style="color:#bbb"> </span><span style="color:#666">&amp;</span>rect);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.x<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">290</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@cos</span>(a<span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#666">2</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span>t));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>rect.y<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#666">170</span><span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#a2f">@floatToInt</span>(<span style="color:#0b0;font-weight:bold">i32</span>,<span style="color:#bbb"> </span>r<span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span><span style="color:#a2f">@sin</span>(a<span style="color:#bbb"> </span><span style="color:#666">+</span><span style="color:#bbb"> </span><span style="color:#666">2</span><span style="color:#bbb"> </span><span style="color:#666">*</span><span style="color:#bbb"> </span>t));<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_SetRenderDrawColor(renderer,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>,<span style="color:#bbb"> </span><span style="color:#666">0xff</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>_<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span>c.SDL_RenderFillRect(renderer,<span style="color:#bbb"> </span><span style="color:#666">&amp;</span>rect);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_RenderPresent(renderer);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>}<span style="color:#bbb">
|
|
||||||
</span></code></pre><p><img src="https://ass.technicalsuwako.moe/Screenshot_20230518_215802.png" alt="" /></p>
|
|
||||||
<p>特に以下のコードをご覧下さい。</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>std<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@import</span>(<span style="color:#b44">&#34;std&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">const</span><span style="color:#bbb"> </span>c<span style="color:#bbb"> </span><span style="color:#666">=</span><span style="color:#bbb"> </span><span style="color:#a2f">@cImport</span>({<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f">@cInclude</span>(<span style="color:#b44">&#34;SDL2/SDL.h&#34;</span>);<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"></span>});<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>@importはZig言語のライブラリーのインクルードする為の物で、@cImportはC言語のライブラリのインクルードする為の物です。<br />
|
|
||||||
<code lang="">#DEFINE</code>と同じ役割を果たすのが、<code lang="">@cDefine</code>です。<br />
|
|
||||||
例えば:</p>
|
|
||||||
<pre><code lang=""><span style="color:#a2f">@cDefine</span>(<span style="color:#b44">&#34;_GNU_SOURCE&#34;</span>,<span style="color:#bbb"> </span>{})<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>@cImportの後しろでは、「c.何々」でC言語の関数等を利用する事が出来ます。<br />
|
|
||||||
例えば:</p>
|
|
||||||
<pre><code lang=""><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">if</span><span style="color:#bbb"> </span>(c.SDL_Init(c.SDL_INIT_VIDEO)<span style="color:#bbb"> </span><span style="color:#666">!=</span><span style="color:#bbb"> </span><span style="color:#666">0</span>)<span style="color:#bbb"> </span>{<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>c.SDL_Log(<span style="color:#b44">&#34;開始失敗: %s&#34;</span>,<span style="color:#bbb"> </span>c.SDL_GetError());<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">return</span><span style="color:#bbb"> </span><span style="color:#a2f;font-weight:bold">error</span>.SDLInitializationFailed;<span style="color:#bbb">
|
|
||||||
</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
|
||||||
</span></code></pre><p>コンパイルするには:</p>
|
|
||||||
<pre><code lang="">zig build-exe main.zig -O ReleaseSmall --name rei --library SDL2 --library SDL2main --library c -isystem <span style="color:#b44">&#34;/usr/include&#34;</span> -L <span style="color:#b44">&#34;/usr/lib&#34;</span>
|
|
||||||
</code></pre><p>以上</p>
|
|
||||||
|
|
||||||
|
|
||||||
</content>
|
|
||||||
</entry>
|
|
||||||
|
|
||||||
|
|
||||||
</feed>
|
</feed>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
# 記事一覧
|
# 記事一覧
|
||||||
|
|
||||||
|
=> /blog/rofi-youtube-100.gmi 2023年06月10日 【076】rofi-youtube 1.0.0登場
|
||||||
=> /blog/openbsd-gemini-server.gmi 2023年06月06日 【デジタル自主】OpenBSDでGeminiサーバーの設置方法
|
=> /blog/openbsd-gemini-server.gmi 2023年06月06日 【デジタル自主】OpenBSDでGeminiサーバーの設置方法
|
||||||
=> /blog/libreredirect-262.gmi 2023年05月13日 【076】Libre Redirect 2.6.2登場
|
=> /blog/libreredirect-262.gmi 2023年05月13日 【076】Libre Redirect 2.6.2登場
|
||||||
=> /blog/diff-zig-rust.gmi 2023年05月24日 【プログラミング】RustとZigの違い
|
=> /blog/diff-zig-rust.gmi 2023年05月24日 【プログラミング】RustとZigの違い
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
=> /blog.gmi ブログ一覧へ
|
||||||
|
|
||||||
|
#【076】rofi-youtube 1.0.0登場
|
||||||
|
投稿日:2023-06-10
|
||||||
|
|
||||||
|
## rofi-youtubeって何?
|
||||||
|
rofi-youtubeは、rofiを用いてYouTubeの動画を検索し再生する為のソフトです。
|
||||||
|
|
||||||
|
## ソースコード
|
||||||
|
=> https://gitler.moe/suwako/rofi-youtube Gitler
|
||||||
|
MakefileはLinux、FreeBSD、OpenBSD、NetBSD、及びOpenIndianaに対応しています。
|
||||||
|
しかし、NetBSDでのgoコンパイラのインストールに失敗した為、その部分についてテストしていません。
|
||||||
|
|
||||||
|
## スクショ
|
||||||
|
=> /static/rofiyt1.gif
|
||||||
|
=> /static/rofiyt2.gif
|
||||||
|
|
||||||
|
## ダウンロード
|
||||||
|
=> https://gitler.moe/suwako/rofi-youtube/releases リリースページ
|
||||||
|
|
||||||
|
以上
|
変更後 幅: | 高さ: | サイズ: 406 KiB |
変更後 幅: | 高さ: | サイズ: 203 KiB |
|
@ -3,6 +3,7 @@
|
||||||
# avatar = gemini://076.moe/static/suwako.jpg
|
# avatar = gemini://076.moe/static/suwako.jpg
|
||||||
# description = テクニカル諏訪子様のtwtxtフィード
|
# description = テクニカル諏訪子様のtwtxtフィード
|
||||||
# link = ホームページ gemini://technicalsuwako.moe
|
# link = ホームページ gemini://technicalsuwako.moe
|
||||||
|
2023-06-10T00:00:00Z09:00 【076】rofi-youtube 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/rofi-youtube-100.gmi
|
||||||
2023-06-06T00:00:00Z09:00 【デジタル自主】OpenBSDでGeminiサーバーを設置方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-gemini-server.gmi
|
2023-06-06T00:00:00Z09:00 【デジタル自主】OpenBSDでGeminiサーバーを設置方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-gemini-server.gmi
|
||||||
2023-05-30T00:00:00Z09:00 【076】Libre Redirect 2.6.2登場 - gemini://technicalsuwako.moe/blog/blog/libreredirect-262.gmi
|
2023-05-30T00:00:00Z09:00 【076】Libre Redirect 2.6.2登場 - gemini://technicalsuwako.moe/blog/blog/libreredirect-262.gmi
|
||||||
2023-05-24T21:00:00Z09:00 【プログラミング】RustとZigの違い - gemini://technicalsuwako.moe/blog/blog/diff-zig-rust.gmi
|
2023-05-24T21:00:00Z09:00 【プログラミング】RustとZigの違い - gemini://technicalsuwako.moe/blog/blog/diff-zig-rust.gmi
|
||||||
|
@ -13,6 +14,7 @@
|
||||||
2023-05-10T17:45:00Z09:00 【076】URLロリ 2.0.1登場 - gemini://technicalsuwako.moe/blog/blog/urloli-201.gmi
|
2023-05-10T17:45:00Z09:00 【076】URLロリ 2.0.1登場 - gemini://technicalsuwako.moe/blog/blog/urloli-201.gmi
|
||||||
2023-05-10T00:00:00Z09:00 【076】URLロリ 2.0.0登場 - gemini://technicalsuwako.moe/blog/blog/urloli-200.gmi
|
2023-05-10T00:00:00Z09:00 【076】URLロリ 2.0.0登場 - gemini://technicalsuwako.moe/blog/blog/urloli-200.gmi
|
||||||
2023-05-07T00:00:00Z09:00 【オワコンテック】vixip 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/vixip-release.gmi
|
2023-05-07T00:00:00Z09:00 【オワコンテック】vixip 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/vixip-release.gmi
|
||||||
|
2023-05-07T00:00:00Z09:00 【オワコンテック】vixip 1.0.0登場 - gemini://technicalsuwako.moe/blog/blog/gitlin-100.gmi
|
||||||
2023-04-19T00:00:00Z09:00 【OpenBSD】更新後「zsh: undefined symbol '_udivdi3'」というエラーの修正する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-zsh-udivdi3-syusei.gmi
|
2023-04-19T00:00:00Z09:00 【OpenBSD】更新後「zsh: undefined symbol '_udivdi3'」というエラーの修正する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-zsh-udivdi3-syusei.gmi
|
||||||
2023-04-18T00:00:00Z09:00 【Crux】自分のポートとレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/crux-make-port-repository.gmi
|
2023-04-18T00:00:00Z09:00 【Crux】自分のポートとレポジトリを作り方 - gemini://technicalsuwako.moe/blog/blog/crux-make-port-repository.gmi
|
||||||
2023-04-01T00:00:00Z09:00 【OpenBSD】xmodmapを使って英数(Caps Lock)キーをスーパーキーに変更する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-change-eisu-super.gmi
|
2023-04-01T00:00:00Z09:00 【OpenBSD】xmodmapを使って英数(Caps Lock)キーをスーパーキーに変更する方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-change-eisu-super.gmi
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
title: 【オワコンテック】vixip 1.0.0登場
|
||||||
|
author: 凛
|
||||||
|
date: 2023-05-07
|
||||||
|
tags: jp,blog,ウエブ開発,オワコンテック,vixip
|
||||||
|
----
|
||||||
|
前に[URLロリ](https://urlo.li/)、[保存サイト](https://hozon.site/)、及び[spliti](https://mixi.owacon.moe/)を作って、発行しましたが、今からここのブログで新リリースについて報告すると思います。\
|
||||||
|
可能なタグは:
|
||||||
|
* [076](https://076.moe/) (一般なウエブ開発。Go言語、又はC言語の利用。PHPはレガシープロジェクトのみ)
|
||||||
|
* [オワコンテック](https://owacon.moe/) (プライバシーUIのウエブ開発。PHPの利用)
|
||||||
|
* [にっぱいゲームズ](https://nippai.moe/) (ゲーム開発、[コミケ](http://comiket.co.jp/)や[オニケ](http://cfxnvps5mxzdfh7aw5gwhhx2hmbr5vbww4m4m3znk6sjxnrd6l7bvnid.onion/)等に参加するのは目指す。C言語、C++、又はZig言語の利用)
|
||||||
|
です。
|
||||||
|
|
||||||
|
## vixipって何?
|
||||||
|
|
||||||
|
vixipはPixiv向けプライバシーUIです。\
|
||||||
|
PixivはTorやVPNでアクセス出来なく、[クラフレ](http://jezf25zgvxlsvuzdzm6fg2hoetmruhy4uxnolyw46tuh4jugcwc7byqd.onion/Cloudflare%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E7%90%86%E7%94%B1%EF%BC%88%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%9E%E3%83%B3%EF%BC%89)を使って、JSは必須ですので、プライバシーは全くありません。\
|
||||||
|
そうして、アカウントを持ってなければ、あんま何も見えません。\
|
||||||
|
ですから、vixipを作りました。
|
||||||
|
|
||||||
|
## 機能性
|
||||||
|
|
||||||
|
* JSは不要
|
||||||
|
* イラストや漫画の表示
|
||||||
|
* コメントの表示(最新の5つのみ)
|
||||||
|
* オススメのイラストの表示
|
||||||
|
* イラストの検索
|
||||||
|
* RSSを使って作者にフォロー
|
||||||
|
* 画像プロクシー(ログインせずイラストの拝見)
|
||||||
|
* R18とR18Gも拝見可能(インスタンス次第)
|
||||||
|
|
||||||
|
## ソースコード
|
||||||
|
|
||||||
|
[Gitler](https://gitler.moe/suwako/vixip)
|
||||||
|
|
||||||
|
## 公式インスタンス
|
||||||
|
|
||||||
|
一般ネット: [https://pixiv.owacon.moe/](オワコンPixiv)\
|
||||||
|
TorとI2Pは今週中設置します。
|
||||||
|
|
||||||
|
## スクショ
|
||||||
|
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_002317.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_002945.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_003137.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_003703.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_004053.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_004224.png)\
|
||||||
|
![](https://ass.technicalsuwako.moe/Screenshot_20230507_004437.png)
|
||||||
|
|
||||||
|
以上
|
|
@ -0,0 +1,21 @@
|
||||||
|
title: 【076】rofi-youtube 1.0.0登場
|
||||||
|
author: 凛
|
||||||
|
date: 2023-06-10
|
||||||
|
tags: jp,blog,ソフト開発,076,rofi,rofi-youtube
|
||||||
|
----
|
||||||
|
## rofi-youtubeって何?
|
||||||
|
rofi-youtubeは、rofiを用いてYouTubeの動画を検索し再生する為のソフトです。
|
||||||
|
|
||||||
|
## ソースコード
|
||||||
|
[Gitler](https://gitler.moe/suwako/rofi-youtube)\
|
||||||
|
MakefileはLinux、FreeBSD、OpenBSD、NetBSD、及びOpenIndianaに対応しています。\
|
||||||
|
しかし、NetBSDでのgoコンパイラのインストールに失敗した為、その部分についてテストしていません。
|
||||||
|
|
||||||
|
## スクショ
|
||||||
|
![](https://ass.technicalsuwako.moe/rofiyt1.gif)
|
||||||
|
![](https://ass.technicalsuwako.moe/rofiyt2.gif)
|
||||||
|
|
||||||
|
## ダウンロード
|
||||||
|
[リリースページ](https://gitler.moe/suwako/rofi-youtube/releases)
|
||||||
|
|
||||||
|
以上
|