リソースの作成と定義:ロックとロック解除
グラフィック・リソースの作成は、一般的にほとんどのグラフィック・システムでメモリーを多く使用するため、Rogue Waveィ Views ではキャッシング・メカニズムを実装してグラフィック・リソースの割り当てを最小限に抑えています。
リソース・オブジェクトは、ユーザー・アプリケーションの
IlvDisplay インスタンスが保持します。これらは通常、演算子
new や
delete を使用した作成や破壊は行いません。代わりに、Rogue Wave Views が、以下のメンバー関数を提供します。
ロックとロック解除の手順
グラフィック・リソースは、以下の方法で使用してください。
1. IlvDisplay インスタンスにリソースの割り当てを要求します。システムにこのリソースがすでに存在する (たとえば、問い合わせをした色がパレットですでに使用されている) 場合、それ以上の割り当ては行われず、既存のリソースが返されます。
リソース管理は、リソースのロックおよびロック解除方法と緊密に関係しています。永続オブジェクトの 1 つに特定のリソースが必要な場合は、必ずこのメカニズムを使用して、
IlvDisplay インスタンス内でそのリソースを確実に保護してください。アプリケーションで
IlvDisplay, のインスタンスを 2 つ以上必要とする場合、リソースは異なる
IlvDisplay コンテキスト間で共有できないため、環境ごとにリソースを作成する必要があります。
リソースの実行中は、
IlvResource::lock の呼び出し数は
IlvResource::unlock の呼び出し数と完全に一致しなければなりません。
lock の呼び出し数の方が多い場合は、リソースが不必要になった場合、つまりアプリケーションの要求が制限されてもリソースは割り当てられたままになります。
unlock の呼び出し数の方が多い場合は、メモリー・エラーによりアプリケーションが破壊される可能性があります。
ロックとロック解除のルール
グラフィック・リソースのロックおよびロック解除については、次のルールに従ってください。
リソースを取得したらロックして使用し、使用が終了したらロック解除します。
確信が持てない限り、自分がロックしなかったリソースのロックを解除しないでください。
リソースのロックやロック解除が必要でない場合があります。たとえば、オブジェクトの前景色を取得し、それをロックする別のオブジェクトに渡す場合です。この場合は、リソースのロックやロック解除は必要ありません。ロックやロック解除しても破損することはありません。
Version 5.6
Copyright © 2012, Rogue Wave Software, Inc. All Rights Reserved.