私はもともと 32 ビットまたは 64 ビットのいずれかにビルドするようにセットアップした XCode プロジェクトを持っています。コードの一部は、境界線のあるレイヤーを作成し、「ブルーム」フィルターを追加して、境界線の周りに光る効果を作成します。
// Create a layer with just a border
CGColorRef yellowColour = CGColorCreateGenericRGB(1.0f, 1.0f, 0.0f, 1.0f);
CALayer *selectionLayer = [CALayer layer];
selectionLayer.bounds = CGRectMake(0.0f, 0.0f, size.width, size.height);
selectionLayer.borderWidth = 3.0f;
selectionLayer.borderColor = yellowColour;
selectionLayer.position = CGPointMake(100, 50);
selectionLayer.zPosition = CGFLOAT_MAX; // stay on top
// Add a bloom filter to add a glow to the border
CIFilter *filter = [CIFilter filterWithName:@"CIBloom"];
[filter setDefaults];
[filter setValue:[NSNumber numberWithFloat:5.0f] forKey:@"inputRadius"];
[selectionLayer setFilters:[NSArray arrayWithObject:filter]];
このプロジェクトを 32 ビット アプリとしてビルドすると、レイヤーが表示され、黄色の境界線に光る効果が正しく適用されます。
次に、64ビットでビルドして実行すると、レイヤーがまったく表示されません(レイヤーが表示されるように背景色を変更しようとしました)
フィルターを追加する行をコメントアウトすると、レイヤーが黄色の境界線で再表示されます (ただし、フィルターは適用されません)。
再び 32 ビットに切り替えるとすぐに、すべて正常に動作します。
ここで何が欠けていますか?フィルターが 64 ビット モードで動作するように、フレームワークを変更したり、他のビルド フラグを変更したりする必要がありますか?