HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1210
CnC++とのバッファ共有3解決


Cn

リンク

2020/12/10(Thu) 15:28:36|NO.91900

こんにちは。Cnと申します。
現在ペイントツールを作っているんですが、メインをバッファにとり、
それを高速化のためにC++で操作したいと考えています。
バッファはC++から操作できるのでしょうか?
UIを作るときにC++だときついのでUIだけHSPで作りたいです。
よろしくお願いします。



この記事に返信する


TOMATO

リンク

2020/12/10(Thu) 16:38:41|NO.91902

ここでいうバッファは何を指しているのかがわからないので、皆様が回答しづらい気がします。
HSPのbuffer命令のことを指してます?
それとも変数データのことを指してます?

バッファという用語はいろんな意味を持っているので…
https://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%95%E3%82%A1%E3%83%BC



Cn

リンク

2020/12/10(Thu) 21:36:24|NO.91904

あ、buffer命令のことです。わかりづらくてすみません。



TOMATO

リンク

2020/12/10(Thu) 22:05:14|NO.91905

mref命令にウィンドウ内画像データ(VRAM)を取得する機能(p1=66)があるので、
一度HSPの変数に割り当てた後に、DLL側の引数にでも変数のポインタでも渡してあげれば、
後はDLL側で好き勝手できます。

ご参考:
小ワザ/VRAMを直接操作してみる
https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8FVRAM%E3%82%92%E7%9B%B4%E6%8E%A5%E6%93%8D%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B.html

もしくは、HDCをDLL側の引数で渡してあげるという手もあります。
ちなみに、DLL側で描画を書き換えた場合は、redraw命令を呼び出さないと反映されません。
(厳密にはHSPの管理外で描画を書き換えるようなケースですが)



ONION software Copyright 1997-2023(c) All rights reserved.